Skip to main content

Module caravel_project

Module caravel_project 

Source
Expand description

A Caravel user project as data.

Caravel carries exactly one user macro, placed as mprj inside the fixed user_project_wrapper. Everything that differs between two user projects along the chain — macro harden, wrapper harden, golden-deck DRC, submission, mpw_precheck — is a field of CaravelProject. The flow scripts read their project through emit_flow_config --caravel-project <key> instead of naming a macro themselves, so a second user project is one more entry in CARAVEL_PROJECTS, never a second copy of the scripts; and the locks walk the same list, so an entry is held to every gate from the moment it exists.

Structs§

CaravelProject
One user project on the Caravel harness.

Enums§

CaravelProjectUnplaceable
Why a project cannot be hardened as described.

Constants§

CARAVEL_PROJECTS
DRAM_PROJECT
The DRAM command-stream executor behind a Wishbone target: the project submitted and precheck-passed first. Every path is the one its evidence was recorded under.
WPE_PROJECT
The whole-program engine (wpe_caravel): its UART and its PSRAM on user GPIOs, clocked on user_clock2 at the clock its UART bit period was derived from, faster than the chip signs its core clock for. Its ports are held to the harness’s minimum input delays (flow_config::vehicle_macro_sdc), so its hold margin is OpenLane’s placement default, 0.1 ns: the 0.7 ns the command player carries buffered 35,656 of the engine’s paths.