-
Notifications
You must be signed in to change notification settings - Fork 3
oldHome
This is a shared knowledge-base to put together references about modern and feature-rich development tools for embedded logic design. The main aim is to provide a standard open-source framework so that a user can set up a base collection of modules, and further configure them to eventually achieve a fully personalized environment.
Certainly, embedded design is a very wide target, so let us specify: we are willing to learn about embedded software and reconfigurable logic engineering, focusing on the adoption of good design practices and getting a big picture of the EDA industry. Taking low-cost and preferredly free or open source platforms as a base, the main goal is to integrate tools in order to work with embedded processors, microcontrollers and reconfigurable devices, such as CPLDs and FPGAs. Since we agree with both Nicolas Bize when he claims that "tools are only as sharp as you decide them to be" [1], and with Reiner Hartenstein on the need of a "paradigm switch" [2] [3] [4], we try to provide a framework which is modular enough so that the user can use both familiar environments/workflows and state-of-the-art solutions that better map to the target application.
The following are some of the target platforms:
- Wiring [5], Arduino [6][7], megaAVR [8],...
- PIC [9]
- Beaglebone [10], Raspberry Pi [11], CHIP [12]
- Mojo [13], LogiFPGA [14], Spartan6 [15], [16], [17],...
- Zynq [18] [19]
- icestick [20] [21], Kéfir [22], icoBOARD [23], NandlandGoBoard [24], IceZUM Alhambra [25], iCE40 [26], ...
Consequently, some of the languages in the scope are ASM, C/C++, Processing/Arduino, and VHDL/Verilog. Nevertheless, higher level languages are also considered in the framework, such as Golang, Haskell, Python, Ruby and Java.
The mainstream workflows for all of the aforementioned resources and tools are quite different, sometimes opposite. Furthermore, multiple alternatives exist for each of them. Then, the main goal is to try multiple freely available tools and summarize the most important features that we'd like the framework to cover. On top of that, if the available features/tools are free/libre [27], resources to help installing/configuring are given. Otherwise, references to commercial tools which provide them are linked.
- nicolasbize.com/blog/the-best-ide-in-the-world
- The von Neumann syndrome and the CS education dilemma
- The tunnel vision syndrome: Massively delaying progress
- fpl.uni-kl.de/staff/hartenstein/lot/Invent_something.htm
- wiring.org.co
- arduino.cc
- arduinohistory.github.io
- atmel.com/products/microcontrollers/avr/megaavr.aspx
- microchip.com/pagehandler/en-us/products/picmicrocontrollers
- beagleboard.org
- raspberrypi.org
- kickstarter: 1598272670/chip-the-worlds-first-9-computer
- kickstarter: 1106670630/mojo-digital-design-for-the-hobbyist
- kickstarter: 1575992013/logi-fpga-development-board-for-raspberry-pi-beagl
- xilinx.com/products/silicon-devices/fpga/spartan-6
- hackaday.io/project/38-arduino-compatible-fpga-shield
- freerangefactory.org/site/pmwiki.php/Main/Hardware
- fpgadeveloper.com/2014/03/comparison-of-zynq-boards
- xilinx.com/products/silicon-devices/soc/zynq-7000
- latticesemi.com/icestick
- latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard
- fpgalibre.sourceforge.net/Kefir
- icoboard.org/about-icoboard
- nandland.com/goboard
- github.com/FPGAwars/icezum
- latticesemi.com/en/Products/FPGAandCPLD/iCE40
- en.wikipedia.org/wiki/Gratis_versus_libre
- @elide
- @vhdl-base
- @vhdl-ext
- VUnit: open source unit testing framework for VHDL/SystemVerilog written in Python.
- OSVVM: Open Source VHDL Verification Methodology.
- GitHub:UVVM: Universal VHDL Verification Methodology.
- GitHub:potentialventures/cocotb: Coroutine Co-simulation Test Bench library for writing VHDL and Verilog testbenches in Python.
- @verilog
- iverilog: a Verilog simulation and synthesis tool that operates as a compiler, compiling source code written in Verilog (IEEE-1364) into some target format.
- Project Icestorm
- icestorm: aims at reverse engineering and documenting the bitstream format of Lattice iCE40 FPGAs and providing simple tools for analyzing and creating bitstream files.
- arachne-pnr: open source Place and Route tool for FPGAs.
- yosys: an open source framework for Verilog RTL synthesis.
- Required by yosys:
- mhdlsim: combine iverilog and ghdl.