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.18.tar.gz (166.2 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.18-py3-none-any.whl (156.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: curvtools-0.0.18.tar.gz
  • Upload date:
  • Size: 166.2 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.18.tar.gz
Algorithm Hash digest
SHA256 a40b32801adff221c53b3824d82bede741360964a33f201d879e963c72c9808e
MD5 36ae823b55ecb60f49cbb380a9c22334
BLAKE2b-256 b1f3ea39f3b29b697544a02dc9833ac55c759b57dd8bbbab6535ce5210a38f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for curvtools-0.0.18.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.18-py3-none-any.whl.

File metadata

  • Download URL: curvtools-0.0.18-py3-none-any.whl
  • Upload date:
  • Size: 156.1 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.18-py3-none-any.whl
Algorithm Hash digest
SHA256 2d9e139a2b5177a744df29b8205129726bee9fa9853425d46cd04a34e0180655
MD5 2fab92c2a8432b2085c61ba62bd93695
BLAKE2b-256 1bbc8d31d52a2b2654c6678274583ecae00efef5c3bf8228ad10605a161eb6ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for curvtools-0.0.18-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