// San Jose, CA · SystemC · C++ · RTL Modeling

We model the parts
that don't come
with a manual.

SystemC and C++ models of the blocks you can't afford to get wrong — and the behaviors the architecture spec leaves ambiguous. Written and reviewed by engineers who have debugged real silicon.

Real silicon Debugged, not just simulated
Weekly drops Working code from week one
Correlated Against RTL, quantitatively

// About

Anyone can model a bus.
The hard part is everything else.

Most blocks are well-behaved — standardized protocols, known patterns. Anyone can model those in a week.

The hard blocks are where the spec runs out: cross-domain interactions, sequencing the manual covers in one ambiguous paragraph, behavior that only shows up during bring-up. You don't learn that from a manual — you learn it from shipping silicon.

Before KO2U was a company, it was a habit. A laser held steady on a spinning disc by a control loop that was modeled before it was built. Hearts read through a patch on the chest. A camera that watches all day on nearly no power. Multiprocessors walked through, cycle by cycle, before a single transistor was drawn. Every system built twice — once in math, once in silicon. The math first. The silicon confirmed it.

That's what KO2U brings: SystemC and C++ models built by engineers who have sat through bring-up, stared at waveforms at 2 AM, and found the corner cases the spec never mentioned.

cpu_model.cpp
#include <systemc.h>

SC_MODULE(CpuModel) {
    sc_in<bool>  clk;
    tlm_utils::simple_initiator_socket<CpuModel> socket;

    void execute() {
        // issue a TLM transaction
        trans.set_address(0x4000_0000);
        socket->b_transport(trans, delay);
    }

    SC_CTOR(CpuModel) {
        SC_METHOD(execute);
        sensitive << clk.pos();
    }
};

// Services

What we build

SystemC / TLM 2.0 Modeling

Loosely-timed and approximately-timed transaction-level models of processors, peripherals, and interconnects — fully compliant with the TLM 2.0 standard and ready for virtual platforms.

C++ RTL Models

Cycle-accurate and cycle-approximate behavioral models written in modern C++, engineered for performance without sacrificing architectural fidelity.

🖥

Virtual Prototypes

Full-system virtual platforms that boot operating systems and run production firmware — enabling software teams to start long before first silicon.

🔗

Co-Verification & Integration

Seamless integration with UVM environments, SystemVerilog DPI, and existing ESL flows. Co-simulation bridges between abstract models and RTL.

📊

Performance Analysis

Instrumented models with profiling, tracing, and power estimation hooks — giving architects quantitative data for design decisions.

🧪

Verification IP

Custom checkers, monitors, and testbench components built on top of our models to catch bugs at the speed of abstraction.

Verification Acceleration

Cut regression time from days to hours. The tools are free — knowing what's safe to accelerate isn't. That judgment is the job.

// Expertise

A short list, on purpose.

Anyone can name forty tools. The work only lives in a few.

SystemC / TLM 2.0IEEE 1666 · LT / AT
C++17/20Modern C++
VerilatorFast RTL sim

Everything else — UVM, SystemVerilog DPI, QEMU — is integration, not identity.

// The blocks themselves

AMBA Memory Interconnect UCIe PCIe Multimedia

And the buses — AXI, AHB, APB? Anyone can model a bus.

// Where the silicon ships

AI Smartphone Wearable Device Embedded System Control Physical AI

// AI

The AI is the same.
The accountability isn't.

We use AI every day — for scaffolding, for boilerplate, for reading unfamiliar legacy code. So does everyone else. The tool stopped being a differentiator the day it became free.

What AI can't do is decide. It writes confident code for the blocks that come with a manual — and the blocks we model are the ones the manual never covered. It has never sat through bring-up. It has never stared at waveforms at 2 AM. It doesn't know which corner cases are real.

So every line AI writes here meets the same bar as everything else we ship — reviewed by an engineer who has debugged silicon, correlated against RTL, quantitatively. AI takes none of the responsibility. We take all of it.

model_gen.cpp
// AI-assisted model — header log
// ────────────────────────────
// generated by:   ai
// corner cases:   human
// correlated:     vs RTL, quantitatively
// responsibility: ours

// Process

How we work

01

Spec & Abstraction

We study your architecture specs and define the right abstraction level — accuracy vs. speed is a business decision, not a guess.

02

Model Development

Iterative development with weekly drops. You get working code from week one, not a big-bang delivery at the end.

03

Correlation

We validate model behavior against RTL simulation results and document accuracy with quantitative correlation reports. And when the two disagree — sometimes it's the RTL that's wrong. We've found client bugs this way.

04

Integration & Handoff

Clean documentation, regression-tested delivery, and knowledge transfer so your team owns the models with confidence.

// Contact

Let's model your next chip.

Tell us which block keeps your team up at night. We'll tell you honestly whether modeling helps — and if it does, how accurately.

contact@ko2u.com
San Jose, CA· Silicon Valley· NDA friendly