Skip to content
STIMSMITH

CISC CPU

Concept WIKI v1 · 7/2/2026

A CISC CPU (Complex Instruction Set Computer central processing unit) is a processor architecture evaluated as a verification target by the CRAVE constrained-random verification environment. In the CRAVE case study, a CISC CPU is modeled at three levels of abstraction—an Instruction Set Architecture (ISA) model in C++, an OSCI TLM-2.0 SystemC transaction-level model, and a SystemC RTL model implementing a five-stage pipeline—and is verified using CRAVE-generated instruction sequences and randomized inputs.

Overview

A CISC CPU is a processor based on the Complex Instruction Set Computer paradigm. In the context of the CRAVE advanced constrained-random verification environment, a CISC CPU serves as the primary verification target, modeled at multiple levels of abstraction to enable cross-abstraction equivalence checking.

CISC CPU as a CRAVE Verification Target

According to the CRAVE paper, a CISC CPU is applied as a verification case study with the following architectural characteristics:

  • Register file: 8 registers, each 32 bits wide.
  • Instruction set: A subset of the IA-32 architecture, including load/store, arithmetic, jump, and halt instructions.
  • Pipeline: A five-stage pipeline is implemented in the RTL model.

The CISC CPU is available at three levels of abstraction:

  1. An Instruction Set Architecture (ISA) model written in C++.
  2. A SystemC TLM model using OSCI TLM-2.0.
  3. A SystemC RTL model implementing a five-stage pipeline.

Verification Methodology with CRAVE

CRAVE is used to generate both:

  • Programs (instruction sequences), and
  • Program inputs,

which together serve as stimuli for all three abstraction-level models. The generated stimuli then feed a simulation-based equivalence-checking approach across models at different levels of abstraction.

A concrete scenario described is the verification of an instruction sequence implementing the bubble sort algorithm, where the input is randomized under constraints that ensure the array fits in CPU memory, does not collide with the loaded program, and is nearly non-increasing (making the sort challenging).

Evaluation Role

The CISC CPU is the design under verification in the CRAVE paper—i.e., the entity that CRAVE evaluates. The relationship is directional: CRAVE → CISC CPU (EVALUATES), with CISC CPU being the design being verified by the tool.

Related Concepts and Tools

  • IA-32 architecture: The CISC CPU implements a subset of IA-32 instructions (load/store, arithmetic, jump, halt).
  • OSCI TLM-2.0: Transaction-level modeling standard used for the CISC CPU's TLM abstraction.
  • Five-stage pipeline: The RTL implementation depth of the CISC CPU.
  • SystemC RTL: The lowest-level model of the CISC CPU used in CRAVE verification.
  • Bubble sort: The algorithm whose implementation is verified as a concrete scenario.

LINKED ENTITIES

1 links

CITATIONS

5 sources
5 citations
[1] A CISC CPU with 8 registers of 32-bit data width each is verified using CRAVE. CRAVE: An Advanced Constrained RAndom VErification Environment for SystemC
[2] The CISC CPU implements a subset of the IA-32 architecture including load/store, arithmetic, jump and halt instructions. CRAVE: An Advanced Constrained RAndom VErification Environment for SystemC
[3] The CISC CPU is available at three levels of abstraction: an ISA model in C++, a SystemC TLM model using OSCI TLM-2.0, and a SystemC RTL model implementing a five-stage pipeline. CRAVE: An Advanced Constrained RAndom VErification Environment for SystemC
[4] CRAVE is used to generate programs (instruction sequences) and their inputs, which are used as stimuli for all three CISC CPU models. CRAVE: An Advanced Constrained RAndom VErification Environment for SystemC
[5] The verification scenario described for the CISC CPU involves a bubble sort instruction sequence with randomized inputs under constraints ensuring the array fits into CPU memory and does not collide with the loaded program. CRAVE: An Advanced Constrained RAndom VErification Environment for SystemC