Name

ocpidev-slot — manage an OpenCPI HDL slot.

Synopsis

ocpidev [<options>] <verb> hdl slot <name>

DESCRIPTION

The hdl slot noun represents an OpenCPI HDL slot, which defines an integral part of an HDL platform that enables an HDL card to be plugged in so that its attached devices are accessible to the platform. An HDL platform has defined slot types; HDL cards that are designed for the same slot type can be plugged in to the defined slots on the platform.

An HDL slot is described by an OpenCPI HDL slot type definition, which is an XML file that defines the signal connections to the pins of the connectors associated with the slot type and provides an (optional) name for the slot type that can be used in HDL Platform Descriptions (OHPDs) and HDL card definitions. OpenCPI provides HDL slot definitions for a number of standard slot types, like the FMC (FPGA Mezzanine Card), which is defined by the by the VITA standards organization as VITA-57.1. Defining a new slot type for use in OpenCPI consists of creating an HDL slot type definition from the information given in the standard document for the slot; writing HDL code to support an HDL slot is not normally necessary. For more information about the XML structure of an HDL slot type definition and how it relates to HDL platforms, devices and cards, see the section "Slots - How Cards Plug into Platforms" in the OpenCPI Platform Development Guide.

An HDL slot is named <name>.xml, where <name> must be a name that can be used in programming languages (uses underscores rather than hyphens) but is otherwise case insensitive. The HDL slot name should normally be the exact name used in the standard document that defines the slot type.

In a project, an HDL slot resides in one of the following locations depending on its intended use:

  • In the subdirectory hdl/cards/specs/ when the HDL slot is platform-independent
  • In the subdirectory hdl/platforms/<platform>/devices/specs/ when the HDL slot is platform-specific

OpenCPI-defined HDL slots are located in the subdirectory hdl/cards/specs/ in the OpenCPI built-in core project.

An OpenCPI HDL slot asset document can also be created for an HDL slot to facilitate documenting the HDL slot during the overall development process. In a project, an HDL slot asset document resides in the same directory and has the same name as the HDL slot’s definition but with the suffix .rst instead of .xml. Unless suppressed by options, building the asset that contains the HDL slot builds viewable HTML output of the HDL slot asset document and cleaning the asset that contains the HDL slot removes the generated HTML. The section "Documenting OpenCPI Assets" in the OpenCPI Documentation Writer Guide provides more information about this feature and describes how to create an OpenCPI HDL card asset document.

Verbs that can operate on an HDL slot are:

create
Create the named HDL slot according to the specified options, creating directories and files as required.
delete
Remove all files associated with the named HDL slot.

The create operation creates an initial HDL slot type definition XML file that can be edited as necessary to define the slot type.

OPTIONS

In addition to the options common to all OpenCPI tools (see opencpi(1)), the options described below can be specified for operations on HDL slots. In the following descriptions, a plus sign (+) after the option indicates that it can be specified more than once on the command line.

Options When Creating HDL Slots

-P <hdl-platform>, --platform=<hdl-platform>
Specify that the HDL slot being created is a platform-specific HDL slot to be created in the devices/specs/ subdirectory in the specified HDL platform in the project.
-k, --keep
Keep files and directories created after an HDL slot creation fails. Normally, all such files and directories are removed on any failure.

Options When Deleting HDL Slots

-f
Force deletion: do not ask for confirmation when deleting a protocol. Normally, you are asked to confirm a deletion.

EXAMPLES

  1. At the top level of the project, create an HDL slot with the name myslot. The HDL slot definition named myslot.xml will be placed in the subdirectory hdl/cards/specs/:

    ocpidev create hdl slot myslot
  2. At the top level of the project, create an HDL slot with the name myslot for the platform myplatform. The HDL slot definition named myslot.xml will be placed in the subdirectory platforms/myplatform/hdl/devices/specs/:

    ocpidev create hdl slot myslot -P myplatform
  3. Inside the project, delete a slot definition and asset document for an HDL slot named myslot from a project’s hdl/cards/specs/ subdirectory:

    ocpidev delete hdl slot myslot

BUGS

See https://www.opencpi.org/report-defects

RESOURCES

See the main web site: https://www.opencpi.org

See the OpenCPI Platform Development Guide: https://opencpi.gitlab.io/releases/latest/docs/OpenCPI_Component_Development_Guide.pdf

See the OpenCPI Documentation Writer Guide: https://opencpi.gitlab.io/releases/latest/docs/OpenCPI_Documentation_Writer_Guide.pdf

SEE ALSO

ocpidev(1) ocpidev-card(1) ocpidev-create(1) ocpidev-delete(1) ocpidev-device(1) ocpidev-platform(1) ocpidev-project(1)

COPYING

Copyright (C) 2023 OpenCPI www.opencpi.org. 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.