Skip to content

A skeleton EDA App in C++, featuring design data parsers (using Boost.Spirit), a basic GUI with Qt, a Tcl shell (with non-polling integration with the Qt event loop), a CMake build system, and a testing framework

License

Notifications You must be signed in to change notification settings

jefftrull/EDASkel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is EDASkel, a collection of code intended to represent the "skeleton" of an EDA application. This consists of basic example implementations of a number of things you normally need in such an app, such as:

1) A Tcl shell (with your custom commands installed)
2) A GUI to display design data
3) Infrastructure like a build system, parsers for various file formats, interfaces to databases, unit tests, user-controllable logging etc.
4) Implementations of various well-known algorithms built on top of quality open-source libraries (e.g., Boost Graph Library for graphs, Boost.Polygon or CGAL for computational geometry, possibly some numerics or matrix libraries)

It's still a work in progress but I hope that by sharing what I've learned with others, and learning from them, we can have better software, faster.  Please share your feedback with me so I can improve this code.

Thanks and Regards,
Jeff Trull
[email protected]


Building EDASkel
----------------
You need a recent copy of Boost (at least 1.53 - download from www.boost.org) and of Qt (4.6.2). You need to have at least 'program_options' library compiled. The steps are as follows:

(cd to this directory)
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/BoostConfig.cmake -DEigen3_DIR=/path/to/Eigen3Config.cmake ..
make

If the build succeeded you should be able to do:

make test

to run all the unit tests, or try one of the sample apps, for example the design viewer:

apps/sv --lef /path/to/file.lef --def /path/to/file.def

You may find that compiling the LEF/DEF parsers is very slow.  It seems to be limited by physical memory size - I recommend at least 4GB, unless you can run the build overnight.  They are in a separate module, so once built, they won't change as you experiment with the code, and incremental compiles will be much faster.

About

A skeleton EDA App in C++, featuring design data parsers (using Boost.Spirit), a basic GUI with Qt, a Tcl shell (with non-polling integration with the Qt event loop), a CMake build system, and a testing framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published