Home

Awesome

CI Downloads license versions PyPI

Xeda Logo

Xeda /ˈziːdə/ is a cross-platform, cross-EDA, cross-target simulation and synthesis automation platform. It assists hardware developers in verification, evaluation, and deployment of RTL designs. Xeda supports flows from multiple commercial and open-source electronic design automation suites.

Xeda is the one tool to rule 'em all!

For further details, visit the Xeda's documentations (Work In Progress).

Installation

Python 3.9 or newer is required. To install the latest published version from pypi run:

python3 -m pip install -U xeda

Development

git clone --recursive https://github.com/XedaHQ/xeda.git
cd xeda
python3 -m pip install -U --editable . --config-settings editable_mode=strict

Usage

Run xeda --help to see a list of available commands and options.

Design Description

Xeda design-specific descriptions and settings are organized through project files specified in TOML. Every project contains one or more HDL designs. The default name for the project file is xedaproject.toml.

Sample Xeda design description file:

name = "sqrt"
description = "Iterative computation of square-root of an integer"
language.vhdl.standard = "2008"

[rtl]
sources = ["sqrt.vhdl"]
top = "sqrt"
clock_port = "clk"
parameters = { G_IN_WIDTH = 32 }
# parameters = { G_IN_WIDTH = 32, G_ITERATIVE = true, G_STR= "abcd", G_BITVECTOR="7'b0101001" }

[tb]
sources = ["tb_sqrt.py"]
cocotb = true
# top = "tb_sqrt"  # FIXME

[flows.vivado_synth]
fpga.part = 'xc7a12tcsg325-1'
clock_period = 5.0

Flows

A Tool is an abstraction for an executable which is responsible for one or several steps in an EDA flow. A Tool can be executed as a native binary already installed on the system, in a virtualized container (e.g. docker), or on a remote system. A Flow is a collection of steps performed by one or several tools. A Xeda Flow implements the following methods:

Supported Tools and Flows

Run xeda list-flows for the full list of supported flows in the installed version.