GEDA

From OpenCircuits
Revision as of 19:38, 12 November 2007 by LaelbOcrac (talk | contribs)
Jump to navigation Jump to search

matrix rpg online reviews of antivirus software examples of polymers 1864 election si.com nba 2 aircraft side view war world tract long ez performance silky sheets light pollution projects american doctors association sonic arcade game wine party favor agua nueva sports graphic rowing mirror custom cut log likelihood test arkansas us senators universal import and export alice cooper dead baby altavista high school intel desktop utilities crash st anthony shrine boston w3schools online web tutorials illumination book legal music downloads in canada www nick com videogames winter plant identification animator easy gif animal mounting what is best fax machine mark bennett attorney what is qcd two speed rear ends unified modelling language notes word perfect converter mac os x longhorn alpha download rovers on mars pilot jobs africa 1999 corolla review lil jon mp3 ice princess 2005 lecturer in economics photos of antonio banderas master esl on line program monahan pat tmobile cell phone deals pole light fixture sir charles court young leaders program white dress pants men artist chicago photographer let it rain down on me ancient roman cuisine oreg april fools students madrid vuelos early melanoma oracle select column names james bond girls images electrical north repair shore remove oil paint seaside highschool autocad training centers white legs and black stockings american cancer society dietary guidelines spor arabalar lazy boy desk pain lower neck front shoulder president bush popularity rating music and child encyclopedia modern plastic administration office resume army lay influence mind power remote experience synonym linux available hard disk space magic usa libertyville sports environmental in issue world viv player resin plastics assistant building surveyor eagle brand milk plastic tensile strength man clothes style javascript add text boxes online newspaper obituary archive 13 boy idea old party year louisiana program recovery topographic maps free 1996 packer asf download codec simple squamous epithelium tissue lose pregnancy weight take it back virtual florist free strawberry clothing stores nyc pickup trucks in uk adoption arkansas milf hunter christina 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.
GEDA Quickstart

What is gEDA/gaf?

(from the gEDA FAQ)

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
  • All software components of gEDA/gaf are released under the GNU General Public License (GPL) version 2


Downloading gEDA

Fedora Core 5 and 6

Install Files: RPMs

Installation Method

1) rpm --install geda-*

2) rpm --install libgeda-*

3) rpm --install pcb-*

Fedora Core 4 and later

Install Files: RPMs

Installation Method

1) rpm --install geda-*

2) rpm --install libgeda-*

3) rpm --install pcb-*

SuSE

Install Files: RPMs

Installation Method

1) yast

Debian

Install FIles: .deb files

Important Installation Notes

  • The gEDA programs use the GTK+ GUI toolkit. If you are running KDE, you should have no problem building and installing them as long as the GTK+ libraries and headers are installed on your system.
  • gEDA/gaf, as well as the gEDA-allied programs have certain dependencies. These are libraries and other programs which must be present on your system to build and run gEDA successfully. When trying to install gEDA, you may find that you need to install other, seemingly unrelated programs first. This is part of the normal process of installing GNU/Linux or Unix software. Note that the installation methods presented above provide you with different approaches to handling the dependency issue. (Also, gEDA/gaf has a very light dependency footprint. However, other gEDA-allied programs may have more dependencies.) If you find you are missing dependencies during the installation process don't despair! Overcoming any dependency issue is a simple matter of installing the required program or library.

Helping out with gEDA

(from the list of gEDA Tasks)

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.

Long term upgrades for desired tools

  • Libgeda:
    • Enable handling of .sch files with symbols having some (but not all) pins promoted onto the .sch file. This will enable pin-swapping via backannotation from PCB.
  • Gschem
    • Enable hierarchical bus support.
    • Make gschemrc variables settable from within gschem using a “settings” pull-down menu item (new).
    • Improve symbol library to handle very large symbol collections better
    • Whenever the selection changes and we have selection dependant dialog, the dialog should get an information about that. Then it would be possible to change the attribute dialog to be non-modal.
  • Gnetlist
    • Enable –help flag. Do other gEDA/gaf programs recognize this flag?
  • Gattrib
    • Make it export CSV to support BOM generation.
    • Get printing working.
    • Enable attachment of attributes to nets.
  • Garchive
    • Incorporate guile so that it reads RC files using the same mechanism as the rest of gEDA/gaf.
  • CD Installer
    • Change it so that the user is presented a pick-list at the beginning of the install, instead of blindly installing everything.
  • Refdes_renum
    • Doesn’t currently work properly with slotted parts (it gives new refdes numbers to slotted parts). Fix it so it recognizes slotted parts and assigns refdes appropriately.
    • Provide –gentle option, which doesn’t clobber (overwrite) any refdeses which are already assigned.

Ideas for new tools

  • Develop scheme for backward annotation of changes from PCB to gschem. Requires modifications to libgeda to support, e.g. pin promotion from .sym file to .sch file (enabling pin swapping).
  • Create a Gerber → .pcb conversion tool. Result is metal layer or footprint editable by PCB. This might be a Perl script.
  • Implement lockfiles between gattrib and gschem.

See also

  • techniques for a list of software design tools (including gEDA)