Embedded Storeroom
February 22, 2022 ยท View on GitHub
A collection of tools for embedded development. The main idea is to have clear what's the current list of useful development tools for embedded systems, since there are many it's difficult to know them all. Ideally a brief comment of what they do and how they interact tools too should be added, and a link. The tool should be run from the commandline or be a plugin of another tool that does! Libraries are listed here
If some tool is missing or you know how to improve any description, please contact!
SOFTWARE
Compilers
CNU GCC: C/C++ compiler https://gcc.gnu.org/
Clang: C/C++ compiler https://clang.llvm.org/
Debuggers and frontends
GDB: debugguer for GNU GCC https://www.gnu.org/software/gdb/
cdtdebug: eclipse CDT standalone debugger: https://wiki.eclipse.org/CDT/StandaloneDebugger
gdbwave: (TBD once I understand this advanced tool): https://github.com/tomverbeure/gdbwave
Simulators
Verilator: Verilog simulator https://www.veripool.org/verilator/
CXXRTL: Yosys simulation backend https://github.com/YosysHQ/yosys/tree/master/backends/cxxrtl
GHDL: simulator for VHDL http://ghdl.free.fr/
Icarus Verilog: imulation and synthesis http://iverilog.icarus.com/
Synthesis tools
Xilinx Vivado: https://www.xilinx.com/products/design-tools/vivado.html
Intel Quartus}: https://www.intel.la/content/www/xl/es/software/programmable/quartus-prime/overview.html
Place and route
NextPNR: Place and route https://github.com/YosysHQ/nextpnr
VtR: Verilog to routing: https://verilogtorouting.org/
HDLs
Verilog
VHDL
Chisel: https://www.chisel-lang.org/
SpinalHDL: https://github.com/SpinalHDL/SpinalHDL
migen: https://m-labs.hk/gateware/migen/
Amaranth: https://github.com/amaranth-lang/amaranth
PipelineC: C-like HDL with autopipelining https://github.com/JulianKemmerer/PipelineC
CflexHDL: Experimental C-like HDL aimed to fast simulation: https://github.com/suarezvictor/CflexHDL
Silice: https://github.com/sylefeb
Wyre: https://github.com/nickmqb/wyre
SoC generators
LiteX: Based on migen, lots of interesting cores! https://github.com/enjoy-digital/litex
Formal tools
SymbiYosys (sby): formal hardware verification https://github.com/YosysHQ/sby
Testbench
mcy: (Yosys) testing testbenches coverage: https://github.com/YosysHQ/mcy
Bitstream generation / manipulation
altsyncram: Manipulate quartus MIF files https://tomverbeure.github.io/2021/04/25/Intel-FPGA-RAM-Bitstream-Patching.html
Software for embedded devices
Micropython: python for microcontrollers https://micropython.org/
Flashing tools
OpenOCD: Debugging and flash tool, interacts with GDB. https://openocd.org/
OpenFPGALoader: for FPGAs https://github.com/trabucayre/openFPGALoader
Waveform viewers/editors/generators
GTK: http://gtkwave.sourceforge.net/
Wavedron: Rendering and editor for the web https://wavedrom.com/
IDEs (only if supports embedded development)
IceStudio: IDE for FPGA development. Based on IceStorm/Apio https://icestudio.io/
Platform.io: https://platformio.org/
Eclipse CDT: https://www.eclipse.org/cdt/
HARDWARE
JTAG
RPi pico based dongles: https://github.com/phdussud/pico-dirtyJtag/