If you're looking for open-source Electronic Design Automation (EDA) software that runs under Mac OS X, you've come to the right place.

Updated for OS X 10.10 (Yosemite).

My daily driver still runs 10.9, and I don't use the bindist, so bear in mind that a few things might need to be adjusted. Feel free to email corrections to the address shown at the bottom of fink info geda-gaf. The output of fink --version is helpful.

The rest of this page assumes that you have Fink, Xcode, and Xquartz (X11 runtime) installed on your machine.

Getting Started

Binary Packages

If you are running 10.10 (Yosemite), 10.9 (Mavericks) or 10.8 (Mountain Lion), and you use the default Fink installation directory of /sw, you can use binary packages instead of compiling from source.

Building from Source

Fink automates the process of downloading dependencies, patching if necessary, and building binaries. In this regard, it is similar to MacPorts or homebrew. However, one distinction is that Fink stashes the resulting build in Debian-style .deb files that can be managed with dpkg, and goes to great lengths to ensure that nothing is stored outside of the installation directory (/sw by default).

The gEDA bundle

When the gEDA suite consisted of many separate packages, it was convenient to have a "bundle" package to update everything. Now, it is probably easier to install the ones you need:

  • geda-gaf
  • iverilog or iverilog-snapshot,
  • pcb
  • gerbv
  • ngspice
  • gtkwave

After gEDA 1.6.0, gschem and friends (gaf) come in a single tarball. If you only want the core gEDA packages, run fink install geda-gaf.

Project web site: http://www.geda-project.org

Fink package database: geda-gaf


Use ngspice for your analog and mixed-signal simulations. Currently maintained by David Fang.

Project web site: http://ngspice.sourceforge.net/

Fink package database: ngspice


PCB allows you to design printed circuit boards. You can use gnetlist (part of geda-gaf) to create a netlist to ensure that your PCB matches a schematic diagram created with gschem. You can then use gsch2pcb to forward-annotate the PCB with part footprint and attribute information from your schematic.

Project web site: http://pcb.geda-project.org/

Fink package database: pcb


Once you have laid out the entire circuit, you will probably want to generate Gerber files and verify them. That's where gerbv comes in handy.

Project web site: http://gerbv.sourceforge.net

Fink package database: gerbv

Icarus Verilog

Icarus Verilog is a Verilog simulation and synthesis engine. Mac OS X support has been in Icarus for a while; however, this Fink package makes it easier to deal with the library and tool dependencies.

Project web site: http://iverilog.icarus.com/

Fink package database: iverilog

If you are interested in the latest development version of Icarus, you can see if the snapshot package has been updated.

Project web site: ftp://icarus.com/pub/eda/verilog/snapshots/

Fink package database: iverilog-snapshot

You may also be interested in the Icarus Verilog testbench. I try to include testbench results in the commit logs when I update the iverilog and iverilog-snapshot Fink package files.


GTKWave is a fully featured GTK+ based wave viewer for Unix and Win32 which reads LXT, LXT2, VZT, FST, and GHW files as well as standard Verilog VCD/EVCD files, and allows their viewing.

Project web site: http://gtkwave.sourceforge.net

Fink package database: gtkwave


No warranties, etc. [insert boilerplate legal text here] I only wrote the Fink description files, not the software-- it is your responsibility to check each package for license information. If it breaks, you get to keep the pieces.