Verification Academy

Search form

My Account Menu

  • Register
  • Log In
  • Topics
  • Courses
  • Forums
  • Patterns Library
  • Cookbooks
  • Events
  • More
  • All Topics
    The Verification Academy offers users multiple entry points to find the information they need. One of these entry points is through Topic collections. These topics are industry standards that all design and verification engineers should recognize. While we continue to add new topics, users are encourage to further refine collection information to meet their specific interests.
    • Languages & Standards

      • Portable Test and Stimulus
      • Functional Safety
      • Design & Verification Languages
    • Methodologies

      • UVM - Universal Verification Methodology
      • UVM Framework
      • UVM Connect
      • FPGA Verification
      • Coverage
    • Techniques & Tools

      • Verification IP
      • Simulation-Based Techniques
      • Planning, Measurement, and Analysis
      • Formal-Based Techniques
      • Debug
      • Clock-Domain Crossing
      • Acceleration
  • All Courses
    The Verification Academy is organized into a collection of free online courses, focusing on various key aspects of advanced functional verification. Each course consists of multiple sessions—allowing the participant to pick and choose specific topics of interest, as well as revisit any specific topics for future reference. After completing a specific course, the participant should be armed with enough knowledge to then understand the necessary steps required for maturing their own organization’s skills and infrastructure on the specific topic of interest. The Verification Academy will provide you with a unique opportunity to develop an understanding of how to mature your organization’s processes so that you can then reap the benefits that advanced functional verification offers.
    • Universal Verification Methodology (UVM)

      • Advanced UVM
      • Basic UVM
      • Introduction to UVM
      • UVM Connect
      • UVM Debug
      • UVMF - One Bite at a Time
    • Featured Courses

      • Introduction to ISO 26262
      • Introduction to DO-254
      • Clock-Domain Crossing Verification
      • Portable Stimulus Basics
      • Power Aware CDC Verification
      • Power Aware Verification
      • SystemVerilog OOP for UVM Verification
    • Additional Courses

      • Assertion-Based Verification
      • An Introduction to Unit Testing with SVUnit
      • Evolving FPGA Verification Capabilities
      • Metrics in SoC Verification
      • SystemVerilog Testbench Acceleration
      • Testbench Co-Emulation: SystemC & TLM-2.0
      • Verification Planning and Management
      • VHDL-2008 Why It Matters
    • Formal-Based Techniques

      • Formal Assertion-Based Verification
      • Formal-Based Technology: Automatic Formal Solutions
      • Formal Coverage
      • Getting Started with Formal-Based Technology
      • Handling Inconclusive Assertions in Formal Verification
      • Sequential Logic Equivalence Checking
    • Analog/Mixed Signal

      • AMS Design Configuration Schemes
      • Improve AMS Verification Performance
      • Improve AMS Verification Quality
  • All Forum Topics
    The Verification Community is eager to answer your UVM, SystemVerilog and Coverage related questions. We encourage you to take an active role in the Forums by answering and commenting to any questions that you are able to.
    • UVM Forum

      • Active Questions
      • Solutions
      • Replies
      • No Replies
      • Search
      • UVM Forum
    • SystemVerilog Forum

      • Active Questions
      • Solutions
      • Replies
      • No Replies
      • Search
      • SystemVerilog Forum
    • Coverage Forum

      • Active Questions
      • Solutions
      • Replies
      • No Replies
      • Search
      • Coverage Forum
    • Additional Forums

      • Announcements
      • Downloads
      • OVM Forum
  • Patterns Library
    The Verification Academy Patterns Library contains a collection of solutions to many of today's verification problems. The patterns contained in the library span across the entire domain of verification (i.e., from specification to methodology to implementation—and across multiple verification engines such as formal, simulation, and emulation).
    • Implementation Patterns

      • Environment Patterns
      • Stimulus Patterns
      • Analysis Patterns
      • All Implementation Patterns
    • Specification Patterns

      • Occurrence Property Patterns
      • Order Property Patterns
      • All Specification Patterns
    • Pattern Resources

      • Start Here - Patterns Library Overview
      • Whitepaper - Taking Reuse to the Next Level
      • Verification Horizons - The Verification Academy Patterns Library
      • Contribute a Pattern to the Library
  • All Cookbooks
    Find all the methodology you need in this comprehensive and vast collection. The UVM and Coverage Cookbooks contain dozens of informative, executable articles covering all aspects of UVM and Coverage.
    • UVM Cookbook

      • UVM Basics
      • Testbench Architecture
      • DUT-Testbench Connections
      • Configuring a Test Environment
      • Analysis Components & Techniques
      • End Of Test Mechanisms
      • Sequences
      • The UVM Messaging System
      • Other Stimulus Techniques
      • Register Abstraction Layer
      • Testbench Acceleration through Co-Emulation
      • Debug of SV and UVM
      • UVM Connect - SV-SystemC interoperability
      • UVM Versions and Compatibility
      • UVM Cookbook
    • Coding Guidelines & Deployment

      • Code Examples
      • UVM Verification Component
      • Package/Organization
      • Questa/Compiling UVM
      • SystemVerilog Guidelines
      • SystemVerilog Performance Guidelines
      • UVM Guidelines
      • UVM Performance Guidelines
    • Coverage Cookbook

      • Introduction
      • What is Coverage?
      • Kinds of Coverage
      • Specification to Testplan
      • Testplan to Functional Coverage
      • Bus Protocol Coverage
      • Block Level Coverage
      • Datapath Coverage
      • SoC Coverage Example
      • Requirements Writing Guidelines
      • Coverage Cookbook
  • All Events
    No one argues that the challenges of verification are growing exponentially. What is needed to meet these challenges are tools, methodologies and processes that can help you transform your verification environment. These recorded seminars from Verification Academy trainers and users provide examples for adoption of new technologies and how to evolve your verification process.
    • Upcoming & Featured Events

      • CDC+RDC Analysis - 4/20
      • Low Power Verification - 4/29
      • User2User - 5/26
      • Webinar Calendar
    • On-Demand Webinars

      • Basic Abstraction Techniques
      • Safety Analysis Techniques
      • QVIP Workflow and Debug for PCIe
      • Writing a Proxy-driven Testbench
      • Achieving High Defect Coverage
      • Visualizer Features
      • Questa Static and Formal Apps
      • All On-Demand Webinars
    • Recording Archive

      • Siemens EDA 2021 Functional Verification Webinar Series
      • Improving Your SystemVerilog & UVM Skills
      • Should I Kill My Formal Run?
      • Visualizer Debug Environment
      • Industry Data & Surveys
      • All Recordings
    • Conferences

      • DVCon 2021
      • DVCon 2020
      • DAC 2019
      • All Conferences
    • Mentor Learning Center

      • SystemVerilog Fundamentals
      • SystemVerilog UVM
      • View all Learning Paths
  • About Verification Academy
    The Verification Academy will provide you with a unique opportunity to develop an understanding of how to mature your organization's processes so that you can then reap the benefits that advanced functional verification offers.
    • Blog & News

      • Verification Horizons Blog
      • Academy News
      • Academy Newsletter
      • Technical Resources
    • Verification Horizons Publication

      • Verification Horizons - March 2021
      • Verification Horizons - November 2020
      • Verification Horizons - July 2020
      • Issue Archive
    • About Us

      • Verification Academy Overview
      • Subject Matter Experts
      • Contact Us
    • Training

      • Questa Basic
      • Questa Advanced
      • Mastering Questa
  • Home
  • Verification Horizons
  • June 2017
  • PA GLS: The Power Aware Gate-level Simulation

PA GLS: The Power Aware Gate-level Simulation

Verification Horizons - Tom Fitzpatrick, Editor

The Power Aware Gate-level Simulation by Progyna Khondkar - Mentor, A Siemens Business

In post-synthesis, gate-level netlist (GL-netlist), power aware (PA) simulation, the fundamental focus is to identify PA specific cells already present in the netlist. The associated UPF with the netlist design, determines the supply network and power connectivity to these special PA cells, and aid to keep their outputs from being corrupted. Hence, the GL-netlist-based power aware simulation (PA-SIM) input requirements are mostly the same as for RTL simulation. However, the design-under-verification at this stage is the GL-netlist from synthesis, so logic gates from standard, multi-voltage (MV), and Macro cell Liberty libraries are already inserted or instantiated in the design. Hence PA-SIM at post-synthesis also requires Liberty libraries as input in order to accumulate different cell-level attributes and power down functions. The Questa® PA-SIM tool utilizes the libraries to extract different attributes and functionalities which can be summarized as follows.

List 1.1 Liberty Libraries Required at GL-Netlist PA-SIM

  • Identify a special power aware cell
  • Conduct power aware simulation based on the cell identification along with UPF specification
  • Apply appropriate corruption semantics accordingly

One significant aspect of GL-netlist PA-SIM is that all cell instances are interpreted as containing drivers because these cells are usually leaf level cells or they are an instance that has no descendants. As a result, buffer cell instances in a GL-netlist will cause corruption when powered down. This contrasts with RTL Verilog ‘buf’ primitives that do not represent drivers and, therefore, are not corrupted by PA-SIM when powered down (at RTL). As a reminder, the following list summarizes the rules for finding drivers at RTL.

List 1.2 Sample Rules for Finding Drivers at RTL

  • Identify a special power aware cell
  • Any statements involving arithmetic or logical operations or conditional execution are interpreted as representing drivers, and Questa® PA-SIM applies corruption when powered down.
  • Unconditional assignments and Verilog ‘buf’ primitives do not represent drivers and, therefore, do not cause corruption when powered down, but they do not isolate and may propagate corrupted signals from upstream drivers.

During GL-netlist PA-SIM, corruption will occur on the output ports and sequential logic of any detected gate-level cells. In addition, power aware simulation automatically treats a module as a gate-level cell if the module contains the `celldefine attribute or the `specify blocks in HDL code. Even these cells are not defined in the Liberty syntax; the standard processing of driver-based corruption is still applied to these cells, similar to that for RTL cell designs.

UPF 1801-2013 or UPF 2.1 LRM provides a dominant mechanism to devise a driver-based corruption of any HDL cell—even when there is no `celldefine or `specify block—through the set_design_attribute [-attribute {name value}]* command. PA-SIM treats all module, entity, or design elements as a gate-level or leaf cell when the following syntax is applied on them.

Example 1.1 Leaf-level or Gate-level Cell Treatment of Design for Driver-Based Corruption

Define through UPF File:
set_design_attributes -models FIFO-attribute {UPF_is_leaf_cell TRUE}

Define through HDL Annotation:
SystemVerilog or Verilog Attribute Specification:(* UPF_is_leaf_cell=“TRUE” *) module FIFO ();

VHDL Attribute Specification:
attribute UPF_is_leaf_cell : STD.Standard.String; attribute UPF_is_leaf_cell of FIFO : entity is “TRUE”;

Though the latest UPF 1801-2015 or UPF 3.0 LRM revised the syntax for leaf-level and gate-level cell definition to enable driver-based corruption through UPF_is_hard_macro instead of UPF_is_leaf_cell attributes, the semantics and use model remain identical.

During GL-netlist PA-SIM, apart from detecting the standard and Macro cells and applying corruption accordingly, the simulator is also required to automatically identify special power management or MV cells—such as, isolation (ISO), level-shifter (LS), and retention flops (RFF)—in the design. The detection of MV cells is primarily done through the cell-level attributes available in the corresponding Liberty libraries and are usually cross-compared with the corresponding definition of strategies in UPF. Recalling the syntax and examples of ISO, LS, and RFF from UPF LRM, and also the fact that a GL-netlist contains at least ISO, LS, and RFF cells through synthesis, most of these cells are already specified either through following UPF commands and options or through tool auto detection processes.

Example 1.2 ISO, LS, RFF Automatic Detection in GL-netlist Simulation through UPF Command

ISO cells: set_isolation strategy_name [-instance {{instance_name port_name}*}]

Where the <instance_name> is a technology leaf-cell instance and the <port_name> of the logic port that it isolates.

LS cells: set_level_shifter strategy_name -instance {{instance_name port_name}*}

Similarly where the <instance_name> is a technology library leaf-cell instance and the <port_name> of the logic port that it level-shifts.

RFF cells: set_retention retention_name -instance {{instance_name[signal_name]}*}

Here in this case as well the <instance_name> is a technology library leaf-cell instance and the optional <signal_name> is the HDL signal that controls retention. If this instance has any unconnected supply ports or save and restore control ports, then these ports need to have identifying attributes in the cell model, and the ports shall be connected in accordance with this set_retention command.

In GL-netlist PA-SIM, the tool’s auto detection process of MV cells actually refers to the cells that are not specified through the -instance but through Liberty or other attributes. Hence, for the rest of the cells that are not specified in the UPF file, GL-netlist PA-SIM automatically detects the right UPF strategy to which they belong and treats them in a similar way to cells of that strategy specified with an -instance argument. Questa® PA-SIM detects power management cells based on one of the following.

List 1.2 Liberty Cell-Level Attributes

  • is_isolation_cell
  • is_level_shifter
  • retention_cell

List 1.3 Library Cell Name from UPF Commands

  • map_isolation_cell isolation_name [-lib_cells lib_cells_list]
  • map_level_shifter_cell level_shifter_strategy [-lib_cells list]
  • map_retention_cell retention_name_list [-lib_cells lib_cell_list]
  • use_interface_cell-strategy list_of_isolation_level_shifter_strategies [-lib_cells lib_cell_list]

Note that map_isolation_cell and map_level_shifter_cell are deprecated from UPF LRM 3.0 with use_interface_cell command. Unlike map_isolation_cell and map_level_shifter_cell, the use_interface_cell can be used to manually map any ISO, LS, or combined isolation level-shifter (ELS) cells.

List 1.4 UPF name_format Command for Defining Names of Implicit Objects

  • [-isolation_prefix string]
  • [-isolation_suffix string]
  • [-level_shift_prefix string]
  • [-level_shift_suffix string]

List 1.5 Synthesis Pragmas

  • isolation_upf
  • retention_upf

Although the GL-netlist PA-SIM does not have any exceptions from the fundamental concept of PA-SIM at the RTL, the Questa® PA-SIM tool procedure requires additional commands to process the information discussed above (Lists 1.2 and 1.3).

Tool Procedures for Liberty Processing at GL-netlist:

Compile: No change

Optimize: vopt- requires including either “vopt-pa_libertyfiles” or “vopt -pa_dumplibertydb”

Simulate: No change

The following list explains the Liberty library referencing methods for GL-netlist PA-SIM.

List 1.6 Liberty Referencing in PA-SIM at GL-netlist

  • pa_libertyfiles-Specifies the Liberty files to read. It is also possible to specify multiple files by separating file names with a comma. e.g., vopt –pa_libertyfiles=a.lib,b.lib
  • pa_dumplibertydb- Specifies the name of the Liberty attribute library database for future reference. e.g., vopt -pa_dumplibertydb=lib_datafile

Apart from detecting standard, Macro, and MV cells, PA-SIM also is required to virtually infer missing MV cells in the design. In general the virtual inferring process is limited to RTL where physical MV cells are not instantiated yet. Inferring may also be required at the Mixed-RTL, where some of the MV cells are still missing. Hence during GL-netlist, such virtual inferring is redundant. However, PA-SIM provides user controllability through tool procedures where it is possible to control the inference.

Tool Procedures for Controlling Virtual Inferring of MV Cells:

Compile: No change

Optimize: -vopt requires adding one of the following to disable auto inference:

“vopt -pa_disable=insertiso”- Disable ISO cell insertion

“vopt -pa_disable=insertls” - Disable LS cell insertion

“vopt-pa_disable=insertret” - Disable RFF cell insertion

Simulate: No change

Using one of the above procedures, based on the requirements, will allow the tool not to infer the appropriate cells virtually at any design abstraction level. But since physical MV cells are already inserted in post-synthesis GL-netlist designs, hence using a tool procedure during optimization as follows will instruct the tool to disable all three virtual insertions for ISO, LS, and RFF at once.

Required Tool Procedure for GL-netlist PA-SIM:

Optimize: vopt- requires to include “vopt -pa_gls”

Hence the GL-netlist PA-SIM as well as Mixed-RTL mechanisms can be summarized as follows:

List 1.7 Summarization of PA-SIM Mechanism for GL-netlist and Mixed-RTL Design

  • Detect standard and Macro cells in the netlist and perform corruption based on the driver, UPF strategies, or power down functionalities from Liberty.
  • Detect MV cells in the netlist and match them with corresponding UPF strategies at that point in the design.
  • Virtually infer MV cells, if missing in the netlist, based on UPF strategies.
  • Conduct automated power aware sequence checks and testbench-based simulation similar to RTL PA-SIM.

So once the cell detection or inferring process is completed as discussed above, the tool conducts power aware simulation on the GL-netlist similar to the RTL design. Although the Liberty file is required as additional input in the GL-netlist, however it is recommended to use the same testbench from RTL stage to confirm verification consistency.

Back to Top

Table of Contents

Verification Horizons Articles:

  • When It Comes to Verification, Hitting the Wall Can Be a Good Thing

  • How Static and Dynamic Failure Analysis Can Improve Productivity in the Assessment of Functional Safety

  • Step-by-step Tutorial for Connecting Questa® VIP into the Processor Verification Flow

  • PA GLS: The Power Aware Gate-level Simulation

  • Reset Verification in SoC Designs

  • Debugging Inconclusive Assertions and a Case Study

  • Getting Generic with Test Intent: Separating Test Intent from Design Details with Portable Stimulus

Siemens Digital Industries Software

Siemens Digital Industries Software

##TodayMeetsTomorrow

Solutions

  • Cloud
  • Mendix
  • Siemens EDA
  • MindSphere
  • Siemens PLM
  • View all portfolio

Explore

  • Digital Journeys
  • Community
  • Blog
  • Online Store

Siemens

  • About Us
  • Careers
  • Events
  • News and Press
  • Newsletter
  • Customer Stories

Contact Us

USA:

phone-office +1 800 547 3000

See our Worldwide Directory

  • Contact Us
  • Support Center
  • Give us Feedback
©2021 Siemens Digital Industries Software. All Rights Reserved.
Terms of Use Privacy Cookie Policy