ocpidev — command-line tool for managing OpenCPI assets


ocpidev [<options>] <verb> [<noun> [<name> ]]


The ocpidev(1) command-line tool is used to perform various development-related tasks inside projects as well as retrieve information about the environment. When used in projects, it can be invoked at the top level of the project or in lower-level directories of the project as appropriate to the particular command being used. The ocpidev command has full tab completion for its options and arguments.

For convenience, options can occur anywhere in the command. The general usage concept is: perform the <verb> operation on the <noun> asset type whose name is <name>.

Man pages are available for ocpidev verbs and nouns by typing the command man ocpidev-<verb> or man ocpidev-<noun>.


The verbs supported by ocpidev are:

Build the asset(s), running appropriate tools to create the binary files and viewable documentation.
Remove all the generated and compiled files for the assets.
Create the named asset, creating files and directories as required, and creating any skeleton files for future editing.
Remove all directories and files associated with the named asset.
Execute a component unit test or application.
Display information about assets in registered projects or below the current directory and the current build environment (preliminary).
register, unregister
Register/unregister a project in a registry.
set, unset
Set/unset the registry used by the project.
Display or record FPGA resource use for HDL OpenCPI assets.


The assets (nouns) supported by ocpidev are:

A component application, specified in either XML or C++.
All applications in a project (in its applications/ directory.
A component specification XML file (OCS) and associated documentation at a project or a library level.
A component library.
A set of component libraries.
A project containing all other asset types.
A properties XML file at a project or a library level.
A protocol specification XML file (OPS) at a project or a library level.
A registry where projects can make themselves visible to other projects.
A unit test suite for a component specification.
A worker that implements a component specification.

Note that the assets application, applications, library, libraries, project and registry do not reside in component libraries. The assets properties, protocol, component, test and worker reside in component libraries.

The HDL-specific assets (located under the hdl/ subdirectory) supported by ocpidev are:

hdl assembly
An assembly of HDL workers used to build HDL containers.
hdl assemblies
All the assemblies in a project or in an HDL assemblies directory.
hdl card
A card specification XML file at a project level or an HDL component library, usually in hdl/cards/.
hdl device
An HDL device worker in an HDL component library (adapters/, cards/, devices/ or an HDL platform’s devices/).
hdl platform
An HDL platform worker in an HDL platforms/ directory, including its platform configurations.
hdl platforms
All HDL platforms in a project or in a project’s hdl/platforms/ directory.
hdl primitive core
An HDL primitive core in a project’s hdl/primitives/ directory.
hdl primitive library
An HDL primitive library in a project or in a project’s hdl/primitives/ directory.
hdl primitives
All HDL primitives (cores or libraries) in a project.
hdl slot
A slot type definition XML file at the project level or the HDL library level.

Note that the HDL assets card and device reside in one of the fixed HDL libraries in a project (hdl/adapters/, hdl/cards/, and hdl/devices/) or the devices/ library within an HDL platform’s directory. The remaining HDL assets listed here do not reside in these libraries.


Options are either single letters following one hyphen or complete words or acronyms following two hyphens and separated by hyphens. In option descriptions, a plus sign (+) after the option indicates that it can be specified more than once on the command line. Arguments to word-form options are preceded by an equal sign (=) (as shown in the descriptions) or a space. Arguments to letter options are preceded by a space.

Most options are only valid for specific verbs or nouns and are described in the individual verb and noun man pages. See the opencpi(1) man page for the general-purpose options that apply to all OpenCPI tools.




See the main web site:

See the OpenCPI Component Development Guide:

See the OpenCPI User Guide:


ocpidev-application(1) ocpidev-assembly(1) ocpidev-build(1) ocpidev-card(1) ocpidev-clean(1) ocpidev-component(1) ocpidev-create(1) ocpidev-delete(1) ocpidev-device(1) ocpidev-library(1) ocpidev-platform(1) ocpidev-primitive(1) ocpidev-project(1) ocpidev-protocol(1) ocpidev-register(1) ocpidev-registry(1) ocpidev-run(1) ocpidev-set(1) ocpidev-show(1) ocpidev-slot(1) ocpidev-test(1) ocpidev-unregister(1) ocpidev-unset(1) ocpidev-utilization(1) ocpidev-worker(1)


Copyright (C) 2023 OpenCPI OpenCPI is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.