Installation

Using cocotb requires installation of prerequisites and installation of cocotb itself. In this document, we are assuming that you already have a supported simulator available in PATH.

Installation of Prerequisites

The current stable version of cocotb requires:

  • Python 3.5+

  • Python development packages

  • GCC 4.8.1+, Clang 3.3+ or Microsoft Visual C++ 14.21+ and associated development packages

  • GNU Make

  • A Verilog or VHDL simulator, depending on your RTL source code

Changed in version 1.4: Dropped Python 2 support

Note

In order to use a 32-bit simulator you need to use a 32-bit version of Python.

The installation instructions vary depending on your operating system:

Conda is an open-source package and environment management system that we recommend for Windows.

Download and install Miniconda from https://conda.io/. From an Anaconda Prompt, use the following line to install a compiler (GCC or Clang) and GNU Make:

conda install -c msys2 m2-base m2-make

Installation of cocotb

The stable version of cocotb can be installed by running

pip install cocotb

Note

The reusable bus interfaces and testbenching components have recently been moved to the cocotb-bus package. You can easily install these at the same time as cocotb by adding the bus extra install: pip install cocotb[bus].

Note

If your user does not have permissions to install cocotb using the instructions above, try adding the --user option to pip (see the pip documentation).

Warning

pip may belong to a different Python installation to what you expect. Use pip -V to check. If this prints “(python 2.7)”, use pip3 or python3 -m pip in place of pip in the command shown.

If you want to install the development version of cocotb, instructions are here.

After installation, you should be able to execute cocotb-config. If it is not found, you need to append its location to the PATH environment variable. This may happen when you use the --user option to pip, in which case the location is documented here.

For more installation options, please see our Wiki.