VHDL synthesis (based on ghdl)
VHDL C++ Makefile Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



VHDL synthesis (based on ghdl)

This is awfully experimental and work in progress!

How to build as a module

Get and install yosys.

Get ghdl from github.

Get the latest version of GNAT:

$ sudo apt-get install gnat-7

From ghdl, build and install libghdlsynth.so. You may need sudo permission.

$ make libghdlsynth.so
$ make install.libghdlsynth.included
$ make install.libghdlsynth.shared
$ make install.libghdlsynth.static

From ghdlsynth-beta:

make GHDL_PREFIX=/usr/local/

This generates ghdl.so, which can be used directly:

$ yosys -m ghdl.so

How to build (not recommended)

Get ghdl from github, build and install build and install libghdlsynth.a:

$ make libghdlsynth.a
$ make install.libghdlsynth

Get yosys.

From ghdlsynth-beta: Patch yosys sources using yosys.diff Copy the ghdl/ directory in yosys/frontends

Configure yosys.

In Makefile.conf, add:

GHDL_DIR := <ghdl install dir>

Build yosys.

How to use

Example for icestick:

ghdl -a leds.vhdl
ghdl -a spin1.vhdl
yosys -p 'ghdl leds; synth_ice40 -blif leds.blif'
arachne-pnr -d 1k -o leds.asc -p leds.pcf leds.blif
icepack leds.asc leds.bin
iceprog leds.bin