Home: IP Portfolio > Verification IP > Simulation VIP > VIP for NVM Express

VIP for NVM Express


The Cadence® Verification IP (VIP) for NVMe is part of Cadence's storage interface VIP portfolio. It provides a mature and highly capable compliance verification solution for the NVM Express (NVMe) protocol. It is applicable for IP, SoC, and system-level verification. The VIP is compatible with the industry-standard Universal Verification Methodology (UVM) and runs on the Cadence Incisive Enterprise Simulator as well as on third-party simulators.

The Cadence VIP for NVMe seamlessly integrates with Cadence VIP for PCI Express® (PCIe®) for all generations (1.0, 2.0, 3.0, 4.0, 5.0, and 6.0).  



The Cadence VIP for NVMe supports the NVMe Specification Revisions 2.0, 1.4, and 1.3, which can be downloaded at http://www.nvmexpress.org/specifications.


Protocol Features

Feature Name

Admin Command Set

Supports all of the mandatory Admin Command set, which defines the commands that can be submitted to the Admin Submission Queue

NVM Command Set

Supports all of the mandatory NVM command set, which is a specification-defined I/O command set used with an I/O queue pair

I/O Queue

Configurable I/O submission/completion queues:

  • Up to 64K queues
  • Each queue supports up to 64K outstanding commands
Admin Queue Configurable Admin submission/completion queues

Controller-Level Reset

CC.EN transitions from '1' to '0'

Subsystem-Level Reset Supports NVM Subsystem Reset
Command Arbitration

Configurable command arbitration schemes:

  • Round robin
  • Weighted round robin
  • Vendor specific
Interrupt Support
  • Pin based
  • MSI (single and multiple message)
  • MSI-X
Multi-Path I/O Supports two or more completely independent PCIe paths between single host and namespace
Namespace Sharing Supports two more hosts to access common shared namespace
Namespace Management Supports Namespace Management command used to create/delete namespace
NVMe 1.3 
PRP Entry and List Supports physical region page (PRP) entry that points to physical memory page
Scatter Gather List Supports scatter gather list (SGL)
Sanitize (optional) Supports sanitize operation in which all user data in the NVM subsystem is altered such that recovery from any cache or the non-volatile media is not possible
Directives (optional) Supports the directives mechanism that allows the exchange of information between host and NVM subsystem or controller
Boot Partitions Boot partition support by controller
Telemetry Device reports telemetry opaque data that is initiated by either the host or controller
Virtualization Supports virtualization management command
Device Self-Test Supports device self-test command to start or abort self-test operation
Host-Controlled Thermal Management Supports thermal management actions
Timestamp Enables host to set timestamp value in the controller
Emulated Controller Performance Enhancement Supports doorbell buffer config command
NVMe 1.4 
Verify Command Supports Verify Command implementation
NVMe Set Supports NVMe Set feature
Endurance Group Supports Endurance Group feature
NVMe 2.0 
PI Enhancement Added PI enhancement for enhanced data protection
Key Per I/O Supports Key Per I/O feature
Zoned Namespaces Added support to handle Namespaces divided into multiple Zones
Copy Command Support added for Copy command


Key Verification Capabilities

  • Standalone NVMe mode

  • NVMe over PCIe

  • NVMe over AXI

Topologies Supported

VIP as NVMe Host (over PCIe)


VIP as NVMe Subsystem (over PCIe)


Other Supported Features

Simulator Support IES, third-party

Testbench Language Interfaces


Methodology SV-UVM

UVM Agent


Trace Debug


Functional Coverage - SystemVerilog







Related Products