KVIPS — Verification IP Suite
Verification IP that ships silicon
Enterprise-grade SystemVerilog UVM VIPs with production-ready regressions, built-in checkers, and Verilator-compatible flows.
Validated on Leading EDA Tools
Why Choose KVIPS?
Production Ready
Extensively tested and validated against industry-leading EDA simulators. Each VIP includes comprehensive regression suites.
UVM Compliant
Built on Accellera UVM 1.1d/1.2 standards with IEEE 1800 SystemVerilog. Seamlessly integrates with your existing testbenches.
Highly Configurable
Extensive configuration knobs for delay modeling, error injection, outstanding transactions, and protocol-specific features.
Built-in Checkers
SystemVerilog Assertions (SVA) for protocol compliance, plus optional scoreboards for data integrity verification.
Comprehensive Docs
Detailed user guides, API references, integration guides, and working examples for rapid deployment.
Vendor Neutral
No vendor lock-in. Pure SystemVerilog implementation works across Questa, VCS, Xcelium, and Verilator without modification.
Available Verification IPs
AXI4 Full
AMBA AXI4 Full Protocol VIP
- Master & Slave agents with configurable memory model
- INCR/FIXED/WRAP bursts (up to 256 beats)
- Exclusive access support with reservation tracking
- Multiple outstanding transactions (pipelined mode)
- Configurable delays, backpressure, error injection
- Comprehensive SVA protocol checkers
- Built-in scoreboard for data verification
APB (APB3/APB4)
AMBA APB3/APB4 Protocol VIP
- Master & Slave agents for register access
- Single-image APB3/APB4 with runtime switch
- Configurable wait states (PREADY control)
- PPROT & PSTRB support (APB4)
- Error injection (PSLVERR)
- Byte-lane selective writes (APB4)
- Protocol assertions & scoreboard
AHB (AHB-Lite/Full)
AMBA AHB-Lite/Full Protocol VIP
- Master & Slave agents with burst support
- Runtime AHB-Lite/Full mode selection
- INCR/WRAP bursts with stall handling
- Variable HSIZE (byte to dword)
- Error injection (OKAY/ERROR responses)
- Configurable wait states
- Comprehensive assertions & coverage
More VIPs Coming Soon
In DevelopmentRoadmap:
- AXI-Lite (Q2 2026)
- AXI-Stream (Q3 2026)
- PCIe Gen3/4/5 (Q4 2026)
- USB 2.0/3.0 (2027)
- I2C, SPI, UART (Q3-Q4 2026)
Contributions welcome! Check our contribution guidelines.
Technical Highlights
🎮 Flexible Sequencing
Rich library of pre-built sequences including:
- Basic directed sequences
- Constrained random sequences
- Stress & corner-case sequences
- Protocol-specific sequences
🔍 Debug & Observability
Comprehensive debug capabilities:
- Transaction-level tracing
- UVM transaction recording
- Performance statistics
- Runtime assertion control
⚙️ Coverage Driven
Built-in functional coverage:
- Protocol feature coverage
- Cross-coverage matrices
- Transition coverage
- Corner case tracking
Quick Start Example
Get up and running in minutes with KVIPS
# Clone the repository
git clone https://github.com/kiranreddi/kvips.git
cd kvips
# Run AXI4 example on Questa
cd axi4/examples/uvm_back2back/sim
./run_questa.sh +UVM_TESTNAME=axi4_b2b_test
# Run full regression
module load lsf
cd ../../..
make -C kvips/axi4/examples regress-questa USE_LSF=1
# Clone the repository
git clone https://github.com/kiranreddi/kvips.git
cd kvips
# Run AXI4 example on VCS
cd axi4/examples/uvm_back2back/sim
./run_vcs.sh +UVM_TESTNAME=axi4_b2b_test
# Clone the repository
git clone https://github.com/kiranreddi/kvips.git
cd kvips
# Run AXI4 example on Xcelium
cd axi4/examples/uvm_back2back/sim
./run_xcelium.sh +UVM_TESTNAME=axi4_b2b_test
Simple Integration
// Instantiate AXI4 interface
axi4_if #(
.ADDR_W(32),
.DATA_W(64),
.ID_W(4)
) axi_if (
.aclk(clk),
.areset_n(rst_n)
);
// Configure and create agents
axi4_env_cfg cfg = new("cfg");
axi4_agent_cfg mst_cfg = new("mst_cfg");
mst_cfg.is_master = 1;
mst_cfg.vif = axi_if;
cfg.agent_cfgs.push_back(mst_cfg);
// Create environment
axi4_env env = axi4_env::type_id::create("env", this);
uvm_config_db#(axi4_env_cfg)::set(this, "env", "cfg", cfg);
// Start sequences
axi4_basic_write_seq seq = new("seq");
seq.start(env.get_master_sequencer(0));
By the Numbers
Launch your verification stack in minutes
Curated quick starts, clean APIs, and battle-hardened regressions — ready for production.