Skip to main content

CLI tools for the Curv RISC-V CPU project

Project description

curvtools package

CLI tools for the Curv RISC-V CPU project.

Prerequisites

Development/testing of CLI tools

We'll use the memmap2 tool as an example. Here are some common tasks:

  • Run one of the CLI tools (they're in your PATH after make setup):

    curv-memmap2 --help
    
  • Run tests just for one tool using pytest from its source directory:

    # from the repo root
    $ cd packages/curvtools/src/curvtools/cli/memmap2
    $ pytest
    

curvcfg

curvcfg is a command line tool for managing the configuration of the Curv CPU. It is used to merge and generate configuration files for the CPU.

Here is a quick rundown of how to use it (paths below are representative—set CURV_ROOT_DIR per the curvcpu/curv docs and point CURV_BUILD_DIR at a scratch build dir like ./build):

  • Board flow: merge board config, then generate HDL/make artifacts

    CURV_BUILD_DIR=build curvcfg [-vv] board merge \
      --board=ulx3s --device=85f \
      --schema=$CURV_ROOT_DIR/boards/schema/schema.toml \
      --schema=$CURV_ROOT_DIR/boards/schema/schema_flash.toml
    

[ CURV_BUILD_DIR=build curvcfg [-vv] board generate
--merged-board-toml build/generated/config/merged_board.toml
--template=$CURV_ROOT_DIR/boards/templates/boardpkg.sv.jinja2 ```

Representative outputs: `generated/config/merged_board.toml`, `generated/make/board.mk(.d)`, `generated/hdl/boardpkg.sv`, `generated/hdl/board.svh`, `generated/shell/board.env`.
  • Configuration variables flow: merge cfgvars, then generate remaining artifacts

    CURV_BUILD_DIR=build curvcfg [-vv] cfgvars merge \
      --profile=default \
      --schema=$CURV_ROOT_DIR/config/schema/schema.toml \
      --schema=$CURV_ROOT_DIR/config/schema/tb-extras-schema.toml \
      --overlay=$CURV_ROOT_DIR/config/profiles/overlays/tb.toml
    
    CURV_BUILD_DIR=build curvcfg [-vv] cfgvars generate \
      --merged-config-toml build/generated/config/merged_cfgvars.toml
    

    Representative outputs: generated/config/merged_cfgvars.toml, generated/make/config.mk.d + curv.mk, generated/hdl/curvcfgpkg.sv, generated/hdl/curvcfg.svh, generated/shell/curv.env.

  • Show derived paths from scripts/make/paths_raw.env in the curvcpu/curv repo

    CURV_BUILD_DIR=build curvcfg [-vv] show curvpaths \
      --board=ulx3s --device=85f --profile=default
    
  • Inspect merged variables for any merged *.toml

    CURV_BUILD_DIR=build curvcfg [-vv] show vars \
      --merged-toml=build/generated/config/merged_board.toml
    
    CURV_BUILD_DIR=build curvcfg [-vv] show vars \
      --merged-toml=build/generated/config/merged_cfgvars.toml
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

curvtools-0.0.19.tar.gz (155.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

curvtools-0.0.19-py3-none-any.whl (142.9 kB view details)

Uploaded Python 3

File details

Details for the file curvtools-0.0.19.tar.gz.

File metadata

  • Download URL: curvtools-0.0.19.tar.gz
  • Upload date:
  • Size: 155.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curvtools-0.0.19.tar.gz
Algorithm Hash digest
SHA256 7d13b69bb764d186328aa1f75ef4c47776f88d1bd5dd76dc916c7cfcbccfe078
MD5 b03c051c44bc34e57ad12850369b3c3f
BLAKE2b-256 48cf76aaf4150ef904d237790909c787520e9c4199f7e2c737b35fe53eab7104

See more details on using hashes here.

Provenance

The following attestation bundles were made for curvtools-0.0.19.tar.gz:

Publisher: ci.yaml on curvcpu/curv-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curvtools-0.0.19-py3-none-any.whl.

File metadata

  • Download URL: curvtools-0.0.19-py3-none-any.whl
  • Upload date:
  • Size: 142.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curvtools-0.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 774aab130be9843cb26d11aa60c75afaaf8e0ee7077c7159d0005ceeda0eaaed
MD5 95166be98c87bf9a99823820dc1abca9
BLAKE2b-256 6777136bafe7d37475c1dc2af10a5f7ab2144aae983c317b8bef4f5c81d642fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for curvtools-0.0.19-py3-none-any.whl:

Publisher: ci.yaml on curvcpu/curv-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page