Do-it-yourselfer's EDA project wins open-source fans
Santa Cruz, Calif. When engineer Ales Hvezda decided to write some of his own EDA software six years ago, he could hardly envision the outcome: an active open-source project with outside contributors, hundreds of users and a suite of tools for low- to medium-complexity pc-board design.
That's just what the GNU Public License (GPL) EDA project dubbed gEDA for short has become, much to the delight of engineers who would rather go their own way than rely on commercial tools. It won't replace commercial software packages, but it does provide an alternative.
Adherents say the biggest attraction is not so much that the gEDA tools are free but that they provide an open design system, with files that will always be readable, source code that's always available and no licensing hassles. But EDA vendors are quick to point out that open-source tools are unsupported and lack many of the features of commercial packages.
The gEDA project includes a set of "core" tools maintained by Hvezda, including the gschem schematic capture package, the gnetlist netlist generator, a symbol library and a number of utilities. There are also "associated" tools that are maintained elsewhere, such as the Icarus Verilog simulator and ngspice circuit simulator. Many gEDA participants use a separate open-source package, called PCB, for board layout.
Today, Hvezda works as a real-time-software developer at Cognex Corp. and neither designs boards nor uses EDA tools at his day job. He called gEDA a "fun side project" that takes perhaps five to 10 hours a week. But there's a serious mission behind it.
"My goal is to provide a complete open design flow tool set," Hvezda said. "The biggest draw of this is not so much that it's free but that all the file formats are in ASCII, all the sources are available, and it's very easy to plug new pieces into the design flow."
Users of gEDA include hobbyists, students and engineers in small businesses or consulting firms. It's also used "unofficially" in larger companies for quick prototypes or projects, Hvezda said.
He said that he has no idea how many gEDA users are out there, but he noted that there were nearly 800 downloads of gschem alone in November and that most gEDA users get the software from sources other than the gEDA Web site.
Among the active users and contributors is Stuart Brorson, a lead electrical engineer at MKS Instruments Inc.'s online product division. "I think gEDA will become the de facto low end, and perhaps mid-level, EDA environment over the next few years," he said. "Why wait for my manager to sign another multithousand-dollar PO for a seat of OrCAD, when I can download the gEDA suite and immediately begin designing?"
"For board-level schematics, gschem is easy to use and powerful," said Dan McMahill, senior member of the technical staff for a large semiconductor company. "I'd rank it as on par with most of the commercial tools I've used." McMahill uses gEDA to design his evaluation and characterization boards, but he said that he'd probably use a commercial package for a 1,000-component production board.
The gEDA tools are "a little rough around the edges" compared with commercial tools, said Steve Meier, president of instrumentation firm MRA Tek LLC. Nonetheless, he's been able to do all of his board designs using the open-source gEDA and PCB packages. He also uses the Icarus Verilog simulator for FPGA design.
Hvezda said he started developing the gEDA tools when he needed EDA software for a personal robotics project. "I surveyed what was out there, and nothing was familiar to the way I like to work, so I started writing something and developed it from there. I didn't plan to release it when I started, but with all the time and effort, it seemed like a good idea."
So Hvezda launched the gEDA Web site in 1998 and placed his software under the GNU Public License, which lets users download source code and do anything they want with it. But there are some ground rules if people start to distribute software commercially. For one, they have to make the source available.
People started contributing patches to the gEDA tools almost immediately, Hvezda said. About three years ago, larger contributions began to come in. Among them are a gschem-to-PCB netlister and more than 20 other netlisters for commercial board design and simulation tools. McMahill has written several netlist back ends for gEDA, and a new contribution from Meier will add hierarchical bus support to gschem.
Brorson contributed gattrib, an attribute editor that reads schematic files and lets users manage such attributes as footprint value and vendor part number. He also wrote a Scheme back end for gnetlist to export Spice netlists, and he has provided some patches for the ngspice program.
Hvezda releases and manages gEDA software contributions. Support comes from the community and is available through the mailing list, which has about 600 subscribers.
The largest group of users, Hvezda said, are engineers in small companies or one-man consulting shops. "For engineers who just need to do something quickly and don't want to mess with commercial tools, this is what they use."
People have come across gEDA in a variety of ways. McMahill said he "stumbled across" the project doing a Web search and later returned to it when he was asked to design a board within a week. "I did not have time in my schedule to write a proposal for getting a commercial tool, so I decided gEDA was worth a shot," he said. "My initial experience was a big success. I went from not even having gEDA on my computer to ordering boards in roughly 36 hours.
Today, McMahill uses gEDA and PCB for all of his board designs, even though PCB is limited to eight layers. "The licensing issue is just one less headache I don't have to deal with," he said.
Meier, similarly, said he "more or less stumbled across" gEDA, along with Icarus and PCB, several years ago. The big attractions for him are "decipherable" output files, source code for models, and an ability to go into the software and look at algorithms. When he needs more than eight layers, he hopes to find some time to modify the PCB program.
Brorson said he came across gEDA last year on a consulting job and that he used gschem and ngspice to design a 500-MHz analog optical transceiver. Gschem, he said, is of similar power to commercial schematic entry tools, is "easier to use and is less buggy." He also noted that there are no licensing hassles, that open-source programs use well-documented ASCII files formats and that they run on Linux.
Plus, they're free. "In an economic environment where every penny is pinched, open-source EDA apps, which don't cost anything and provide the same functionality as commercial tools costing thousands of dollars per seat, will become increasingly attractive," he said.
Commercial vendors respond
Commercial EDA tool vendors and distributors, however, say they see little threat from open-source software. "In most cases, it doesn't make it to the mainstream," said Greg Roberts, director of marketing at EMA Design Automation, which distributes OrCAD tools. "Most of our users are just that users. They don't want to be EDA software developers; they want to use supported, quality tools to help them get their job done."
The gEDA software is "an interesting project" but is not "professional caliber," said Ian Suttie, vice president of sales and marketing at Electronics Workbench. "While gEDA has lots of primitive functionality, it does not provide a clean, optimized user interface of the sort professional engineers demand. Neither does gEDA software provide some of the functionality essential for professional use."
Hvezda has no illusions about replacing commercial tools. "Certainly the commercial packages are very polished, and there's a support company standing behind these packages," he said. "There will be a place for commercial tools forever."
But he does hope to send a message about "the value of open design flows. That's really my goal making people realize the value of moving away from proprietary, closed formats, making it easy for tools to cooperate," he said.