GEDA
The goal of the gEDA project is to create a fully functional GPL'd suite of EDA (Electronic Design Automation) tools. It was started because of the lack of free EDA tools for UNIX.
Contents
What is gEDA/gaf?
gaf stands for "gschem and friends. It is a subset of the entire tool suite under the gEDA name. It's a collection of the following tools.
gschem
gschem is the schematic capture tool. It's sole purpose is to facilitate the graphical input of componenets/circuts. Schematic capture is the ability to draw and layout circuits using a computer, where standard symboles are sued to represent the various gates and components which are interconnected by wires.
gnetlist
gnetlist is a netlist generation program that takes as input gEDA/gaf schematic file and the required symbol files and converts then into netlists.
It supports writing to the following netlists formats: Unix PCB, Allegro, BAE, Gossip, Maxascii, PADS, Protelll, Spice, Tango, Verilog, VHDL-VAMS, VHDL, Vipec, BOM generators, and gEDA's backend testing.
gsymcheck
gsymcheck is the symbol checker for the gEDA system. It takes in a symbol file and will verify that it will work in gschem. Currently, this tool identifies the following errors.
- Having invalid objects inside of a symbol
- Missing certain required attributes
- Duplication of certain attributes
- Incorrect usage of the various attributes
- Using forbidden, obsolete, or invalid attributes
gattrib
gattrib is gEDA's attribute editor. It reads a set of gschem files and creates a spreadsheet showing all components in rows, with the associated component attributes listed in the columns. It allows the user to add, modify, or delete component attributes outside of gschem, and then save the schematic files back out.
It is useful in situations where you need to view, add, modify, or delete a number of attributes all at once. It saves you the pain of clicking on each component and repeastedly using gschem's attribute editor to modify component attributes.
What is the gEDA suite?
gEDA/gaf
All the main tools including gschem, gnetlist, gsymcheck, gattrib, libgeda, and gsch2pcb.
ngspice
Ngspice is a mixed-level/mixed-signal circuit simulator based on three open source software packages: Spice3f5, Cider1b1 and Xspice. Ngspice is more than the sum of the packages above, as many people contributed to the project with their experience, their bug fixes and their improvements. Ngspice is now an usable simulator: many of the original bugs are fixed, it includes many recently developed compact models (BSIM3, BSIM4, SOI models, VBIC, HISIM, etc.) and some older models have been improved.
gnucap
Gnucap is the Gnu Circuit Analysis Package. Its primary component is a general purpose circuit simulator. It performs nonlinear dc and transient analyses, fourier analysis, and ac analysis. Spice compatible models for the MOSFET (level 1-7), BJT, and diode are included in this release.
Gnucap is not based on Spice, but some of the models have been derived from the Berkeley models. Unlike Spice, the engine is designed to do true mixed-mode simulation.
gspiceui
The name gspiceui is a compaction of GNU Spice GUI. It is intended to provide a GUI for two freely available electronic circuit simulation engines: GNU-Cap and Ng-Spice.
pcb
PCB is an interactive printed circuit board editor for the X11 window system. PCB includes a rats nest feature, design rule checking, and can provide industry standard RS-274-X (Gerber), NC drill, and centroid data (X-Y data) output for use in the board fabrication and assembly process. PCB offers high end features such as an autorouter and trace optimizer which can tremendously reduce layout time.
gerbv
Gerber Viewer (gerbv) is a viewer for Gerber files. Gerber files are generated from PCB CAD system and sent to PCB manufacturers as basis for the manufacturing process.
The different layers of the PCB are separated into different files. gerbv can load all files at the same time, though it can not show them at the same time. You have to browse through the different layers with the radio buttons on the right side.
Icasur Verilog
Icarus Verilog is a a GPLed Verilog compiler. Icarus Verilog includes a a parser that parses Verilog (plus extensions) and generates an internal netlist. The netlist is passed to various processing steps that transform the design to more optimal/practical forms, then passed to a code generator for final output. The processing steps and the code generator are selected by command line switches.
GTKWave
GTKWave is a digital waveform viewer useful for examining the output of various digital simulators (like Icarus Verilog, for example). It can read VCD, EVCD, LXT, and Synopsis output formats. It was built using the GTK+ toolkit.
Why gEDA?
Compared to other software packages from Cadence, Mentor, or Synopsys, gEDA may not be as advanced and sophisticated then other packages. However, gEDA is becoming increasingly useful to a lot of people because of the following reasons.
- Absolutely Free
- All files and the entire source code are available via the GPL License.
- Independence from any vendor. Since all gEDA tools come with full source, you can make any modifications to the tools, as loong as your follow the terms of the GPL.
- Stability: bugs are investigated immediately ans fixed in a timely manner.
- Runs on as many platforms as possible including GNU/Linux and numbeous other UNIX systems.
- Strives to be documented
Licensing
All software components of gEDA/gaf are released under the GNU General Public License (GPL) version 2
Helping out with gEDA
Documentation Writers/Editors
Somebody is needed to act as an editor for the gEDA documentation effort. Basically this person would take whatever documentation already exists and/or is currently being written and formats it into something presentable. This individual does not write the actual documentation, but would instead perform editorial work. People who want to write the actual documentation are also needed.
Publicity Manager
Somebody is needed to do publicity for the gEDA project. This consists of posting release updates to the various Linux/Unix websites (like Freshmeat or LWN)
Netlist Hacker
Somebody who is familiar with the generation/management of netlists is needed to help work on and improve gnetlist. Whether the existing gnetlist is used or if a total rewrite is needed is always an open option. Must be extremely familiar with UNIX/C/C++ programming.
Symbol Library Hacker
Somebody is needed to help get the symbol library up to the current symbol spec. This individual would also help in the integration of new symbols and making sure that they meet the current symbol spec. The task of getting the symbol library up to spec is a combination of manual effort and automated updating (this sort of automated updating lends itself very well to a person with shell/perl scripting familiarity).
geda GUI Hacker
Somebody who knows C, UNIX, and gtk+ programming is needed to work on the gEDA GUI (the program named geda). This program has been stalled for the past year due to the lack of manpower. Whether the existing geda is used or a total rewrite is needed is always an open option.
UNIX Port Testers
People are always needed to test gEDA on different and new UNIX like operating systems. This person would basically download a new release and make sure it works on their platform of choice. Any problems found would be then submitted to the appropriate gEDA author.
Windows Port Hacker/Manager
Somebody with expertise building and testing gEDA on UNIX systems and familiarity with the MS Windows 95/98/NT platform is needed to manage the gEDA Windows port. Testing, bug fixing, packaging, and releasing of gEDA on the Windows platform would be the primary responsibility of this person. This task requires a person who knows C, gtk+, UNIX, and MS Windows programming. The Windows port will NOT move forward if this task is not filled.
=== Release Hacker === Somebody who wants to create and manage releases is needed. Releases occur when the code is ready to be released, so there’s no marketing pressure. This task requires gEDA building/testing familiarity as well perhaps some minor code hacking.
Website/Mirror Hacker
Somebody to watch over the mirrors and maybe do some HTML hacking is needed. There are currently three websites which need to be monitored and occasionally fixed. The person would also have influence in the changing/expansion of the gEDA website. Duties would be split among the current webmasters.