All Projects → XedaHQ → xeda

XedaHQ / xeda

Licence: Apache-2.0 license
Cross EDA Abstraction and Automation

Programming Languages

python
139335 projects - #7 most used programming language
tcl
693 projects

Projects that are alternatives of or similar to xeda

Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (+980%)
Mutual labels:  fpga, vhdl, eda, verilog, synthesis
async fifo
A dual clock asynchronous FIFO written in verilog, tested with Icarus Verilog
Stars: ✭ 117 (+368%)
Mutual labels:  fpga, verilog, synthesis, hdl
docker
Scripts to build and use docker images including GHDL
Stars: ✭ 27 (+8%)
Mutual labels:  hardware, vhdl, verilog, synthesis
gateware-ts
Hardware definition library and environment for designing and building digital hardware for FPGAs, using only open source tools
Stars: ✭ 83 (+232%)
Mutual labels:  fpga, hardware, verilog, hdl
Vtr Verilog To Routing
Verilog to Routing -- Open Source CAD Flow for FPGA Research
Stars: ✭ 466 (+1764%)
Mutual labels:  fpga, eda, verilog, synthesis
Haddoc2
Caffe to VHDL
Stars: ✭ 57 (+128%)
Mutual labels:  fpga, hardware, vhdl
J1sc
A reimplementation of a tiny stack CPU
Stars: ✭ 64 (+156%)
Mutual labels:  fpga, vhdl, verilog
Nyuziprocessor
GPGPU microprocessor architecture
Stars: ✭ 1,351 (+5304%)
Mutual labels:  fpga, hardware, verilog
SpinalDev
Docker Development Environment for SpinalHDL
Stars: ✭ 17 (-32%)
Mutual labels:  fpga, vhdl, verilog
Clash Compiler
Haskell to VHDL/Verilog/SystemVerilog compiler
Stars: ✭ 958 (+3732%)
Mutual labels:  fpga, vhdl, verilog
Neorv32
A small and customizable full-scale 32-bit RISC-V soft-core CPU and SoC written in platform-independent VHDL.
Stars: ✭ 106 (+324%)
Mutual labels:  fpga, hardware, vhdl
fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (+116%)
Mutual labels:  fpga, vhdl, verilog
Rggen
Code generation tool for configuration and status registers
Stars: ✭ 54 (+116%)
Mutual labels:  fpga, eda, verilog
Vexriscv
A FPGA friendly 32 bit RISC-V CPU implementation
Stars: ✭ 1,041 (+4064%)
Mutual labels:  fpga, vhdl, verilog
Kactus2dev
Kactus2 is a graphical EDA tool based on the IP-XACT standard.
Stars: ✭ 82 (+228%)
Mutual labels:  fpga, hardware, eda
Image Processing
Image Processing Toolbox in Verilog using Basys3 FPGA
Stars: ✭ 31 (+24%)
Mutual labels:  fpga, vhdl, verilog
Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (+340%)
Mutual labels:  fpga, verilog, synthesis
vscode-terosHDL
VHDL and Verilog/SV IDE: state machine viewer, linter, documentation, snippets... and more!
Stars: ✭ 325 (+1200%)
Mutual labels:  fpga, vhdl, verilog
Open Register Design Tool
Tool to generate register RTL, models, and docs using SystemRDL or JSpec input
Stars: ✭ 126 (+404%)
Mutual labels:  fpga, eda, verilog
Symbiflow Arch Defs
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation.
Stars: ✭ 137 (+448%)
Mutual labels:  fpga, verilog, synthesis

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.8 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:

  • init(optional): initializations which need to happen after the instantiation of a Flow instance. At this stage, the flow can specify and customize dependency flows, which will be run before execution of the flow. Seperation of this stage form Python __init__ enables greater flexibility and more effective control over the execution of flows.
  • run: main execution of the flow which includes generation of files, scripts, and tool arguments as well as execution of one or several tools. All dependencies have been already executed before run begins, and the completed dependencies (and their results and artifacts) will be available.
  • parse_results(optional): evaluate and interpret generated reports or other artifacts.

Supported Tools and Flows

  • AMD-Xilinx Vivado Design Suite
    • vivado_synth: FPGA synthesis and implementation.
    • vivado_sim: functional simulation of RTL design
    • vivado_postsynthsim: Post-implementation functional and timing simulation and power analysis
    • vivado_power: Post-implementation power estimation based on post-implementation timing simulation with real-world target testvectors
  • AMD-Xilinx ISE Design Suite
  • GHDL VHDL simulator
    • ghdl_sim
  • Intel Quartus Prime (Lite/Pro Editions):
    • quartus: FPGA synthesis and implementation flow
  • Lattice Diamond
    • diamond_synth: FPGA synthesis and implementation flow
  • Mentor (Siemens) ModelSim
    • modelsim RTL and netlist simulation
  • nextpnr portable FPGA place and route tool
  • openFPGAloader: Open-source and multi-platform universal utility for programming FPGAs. Compatible with many boards, cables and FPGA from major manufacturers.
  • OpenROAD: integrated chip physical design flow that takes a design from RTL sources to routed layout.
  • Synopsys Design Compiler
  • Synopsys VCS simulator
  • Verilator: the fastest (open-source) Verilog/SystemVerilog simulator.
  • Bluespec: Compiler, simulator, and tools for the Bluespec Hardware Description Language.
  • Yosys Open SYnthesis Suite (FPGA and ASICs synthesis)

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].