GEDA
Introduction to gEDA
EDA is an abbreviation for Electronic Design Automation which means electronic circuit design on a digital computer. gEDA is an acronym for General Public Licensed Electronic Design Automation. It is a collection of free software which can be used for electrical and electronic circuit design, schematic capture, simulation, prototyping, and production. gEDA is available at http://www.gpleda.org/index.html. GPL means General Public License. This is the software license under which majority of the free software are released. This license gives the user freedom to use, modify, and share the software. For more information on the meaning of Free Software and GPL please see http://www.fsf.org/. More information on gEDA is also available here: http://en.wikipedia.org/wiki/GEDA.
The Spoken Tutorial Effort for gEDA is being contributed by R S Ananda Murthy, Associate Professor and Head of Department of Electrical & Electronics Engineering, S. J. College of Engineering, Mysore 570 006.
Platforms
gEDA collection of tools are all developed on GNU Linux platform. However they can also be compiled and run on other platforms like Microsoft Windows, Mac OS X, and Unix. However, all the tutorials listed below have been targeted only for GNU Linux platform. All major GNU Linux distributions have gEDA tools as precompiled packages which can be installed using the software manager of that distribution. Tutorial on installing software packages in Ubuntu GNU Linux is given here: http://spoken-tutorial.org/wiki/index.php/Ubuntu. Tutorial showing how to install software packages on a Zenwalk GNU Linux system is given here: http://spoken-tutorial.org/wiki/index.php/Zenwalk.
Pre-requisites for using gEDA
- Circuit Theory.
- Basics of Analog and Digital Electronics.
- Skills in operating GNU Linux systems (since gEDA is mostly run on such systems).
- Basics of circuit simulation.
- Knowledge of PCB making process.
Who can use gEDA?
gEDA is useful for anybody who wants to design an electronic circuit and prepare its PCB using a very inexpensive software. This is especially beneficial to students, teachers, engineering colleges, R&D organizations, electronic hobbyists. It is possible to make professional quality simulations and PCB using gEDA tools. For more information on the capabilities of gEDA see here:http://www.geda.seul.org/wiki/geda:links#projects_created_using_geda
Components of gEDA
gEDA consists of the following software components:
- gEDA Suite -- Schematic capture, netlister, symbols, symbol checker, and utilities.
- Ngspice – An improved free mixed-level/mixed-signal circuit simulator based on SPICE.
- Gnucap – Another free mixed-mode/mixed-level circuit simulator not based on SPICE.
- GSpiceUI – A graphical front end for Ngspice and Gnucap.
- gwave – Analog waveform viewer.
- xgsch2pcb – Graphical front-end for the schematic to PCB work flow.
- pcb – Printed Circuit Board layout tool.
- Gerbv – Gerber file viewer.
- Icarius – Verilog simulation and synthesis tool.
- GtkWave – A waveform viewer to view output of Verilog or VHDL simulation.
- gattrib – A spread-sheet like component attribute editor.
- gsymcheck – Checks for errors in schematic symbols.
- refdes_renum – Automatically renumbers parts in a schematic.
- tragesym – Creates schematic symbols from text files.
The following software, though not part of gEDA project, are useful in EDA:
- EasySpice – Graphical front-end for Ngspice available at http://easy-spice.sourceforge.net/.
- KJWaves – Graphical front-end for Ngspice available at http://www.comefly.us/. This is a Java application which can run on multiple platforms.
- gaw – Analog waveform viewer (alternative to Gwave).
In this section, we would discuss nomenclature and common terms you would encounter while using Drupal. If you are a Drupal beginner, an understanding of these would be critical in ensuring success with your Drupal setup. You can skip it if you are already familiar with core Drupal concepts and move on to advanced topics below.
Anatomy of a Drupal page
Node - the basis of all Drupal content
A Drupal page is just like any other normal Html/Css web page. Officially a Drupal page is called a "Node" (although there are non-node pages also, but that is a advanced concept for later).
You can create any number of nodes (aka pages) on your Drupal site and Drupal would take care of organizing them, creating menus etc. for them.
Node type
You can categories your Drupal nodes (i.e. Drupal pages), where each category is called a Node type (i.e. page type). Node types are one of the most powerful and popular features of Drupal allowing you to customize content according to a node type.
Let us take an example to understand node types and nodes. Suppose, you work for a company who need to build their website. Now a company would have various types of pages on their site, let's say regular home page, about us page etc (i.e. pages about the company itself). Then there would be pages about the company's products. Further, you might need forum-like discussion pages to provide online support to your clients.
Now you would like only specific people to edit or add pages related to the company or its products. But you would like to have most of the people participate and post to your forums. You can create 3 node types here, let's say "Company page", "Product page" and "Forum page". When you would try to add a node (i.e. page) on your site, Drupal would ask you to select one of these node types. Thus every node (page) on a Drupal site has one and only one node type.
The beauty of this entire concept is that you can control the layout, permissions and many other things per node type on your site (you can go as far as customizing each node individually including its layout, but most Drupal administrators like to customize content per node type. You would continue to learn more about nodes and node types through out the Drupal tutorials.
Drupal comes with 2 node types pre-configured out-of-the-box, "Page" and "Story". The default settings for "Page" node type are suitable for use as Company page in the example above, whereas default "Story" node type settings are suitable for a "Forum page". You can easily change these settings for the pre-configured node types, or delete them altogether and create new node types. The pe-configured node type are provided as starting examples and are not required by Drupal in any way.
While browsing on web, you must have seen blogs with blog entries listed on a single page together with a short introduction to each entry, and a link to the full page for the blog entry. Alternatively, you must have seen such short introductions in RSS readers if you use one.
Drupal calls such introduction to any node as a Teaser. Drupal out-of-the-box can use Teasers for multiple purposes including for RSS feeds, etc. Each node in Drupal always has a single Teaser. As a node-editor, either you can explicitly mark-out the Teaser for the node, or Drupal would generate it automatically when you save the node from the opening paragraph or two of the node.
Block
On most web-sites today, you would easily recognize clearly demarcated areas of the page. On most of the web-sites, you would notice that there is a main content region which is surrounded by small "blocks" like navigation menus, login boxes, Contact us or Footer sections etc. You would further notice that the main Content region changes per page, but the surrounding region remain almost same across pages.
Each such surrounding region is called a block in Drupal parlance. Blocks again are a powerful Drupal concept allowing you to organize your page content meaningfully.For example in the image, you would see 3 blocks and the main content region for the default Drupal theme.
Module
Theme
User
Role
Taxonomy
Taxonomy in Drupal is all about categorizing the content. It's a handy tool that tag,organize and manage your work in a proper manner. Taxonomy structure consists 'Vocabulary' and 'Term'. The 'Vocabulary' is the root of the tree and the 'Term' is its child in hierarchies.
Example-
Vocabulary - Country (India)
Term - State (Rajasthan)
sub-term - City (Bikaner)
and so on. You can access taxonomy going through Administer > Content management > Taxonomy > add vocabulary in D6
and Administer > Structure > Taxonomy in D7
Taxonomy is a powerful tool when you are working with a large pile of content and you want to present it in a beautiful manner.
Tutorials on gEDA
The following tutorials about how to use various software components of gEDA are available here:
Beginner's Level Tutorials
- Using gSchem to draw a schematic for simulation using Ngspice.
- Using gSchem to prepare a schematic for simulation using Gnucap.
- Using Ngspice for circuit simulation.
- Using Gnucap for circuit simulation.
- Using Gaw to view simulation output waveforms.
Intermediate Level Tutorials
- Simulation of systems having subcircuits using Ngspice.
- Digital circuit simulation using Ngspice.
- Mixed-level circuit simulation using Ngspice.
- Simulation of systems having subcircuits using Gnucap.
- Digital circuit simulation using Gnucap.
- Mixed-level circuit simulation using Gnucap.
Advanced Level Tutorials
- How to create symbols using gSchem.
- How to create footprints of components.
- Making PCB layout using PCB.
- Using gerbv for PCB manufacturing. s
- Creating different types of netlists for manufacturing.
- Using Icarius Verilog for digital system design.
- Using gtkwave.
- Demonstration of gattrib.