Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
cpptb documentation
cpptb documentation

Start here

  • Getting started
  • Core ideas
  • Coming from cocotb

Core concepts

  • Tasks and concurrency
  • Framework test lifecycle
  • Clocking
  • Scheduling
  • Structured logging
  • Waveforms

Examples

  • Overview
  • Simple
    • Counter
    • Clockless timers
    • FIFO scoreboard
    • Multiple clocks
    • Watchdogs and timeouts
  • Advanced
    • Component FIFO
    • APB register file
    • APB transaction trace
    • IP-XACT register model
    • Fault injection
    • Rich data
    • Interfaces and inouts example
    • Mixed-language logging
    • Heavy benchmark testbenches
    • Open-source core benchmarks
    • secworks AES register-model oracle

Connect to your DUT

  • Hierarchical DUT access
  • Interfaces and inouts
  • Four-state values
  • Code generation

Advanced Verification

  • Verification components
    • Sparse expected memory
    • Transaction recording
  • Registers & memory
    • Generate a model
    • Standard sequences
  • Randomization
    • Randomization examples
    • Random value generation
    • Constrained transactions
    • Policies and composite fields
    • Solvers and diagnostics
    • Functional coverage
    • Seeds, streams, and replay

Library reference

  • API reference
  • Triggers & phase waits
  • Tasks & coordination
  • Signals & the Dut
  • TestContext & checks
  • Randomization
  • Functional coverage
  • Verification components
  • Register models
  • Embedding & results

Reference

  • Running tests
  • cpptb command line
  • cpptb.toml reference
  • Troubleshooting
  • Glossary

Internals

  • How a build works
  • Architecture
  • Performance

Project

  • Roadmap
  • Future directions
  • Ibex ports & co-simulation
Back to top
Copyright © 2026, cpptb contributors
Made with Sphinx and @pradyunsg's Furo