About The Project

KLayout Highlights

General

  • Fast and accurate: fast loading and drawing
  • Support of GDS and OASIS file formats with automatic uncompression of zlib compatible formats
  • Full support of properties
  • Full 64 bit support on Linux
  • Extensible and configurable to a large degree by custom ruby scripts
  • Integrated development environment for Ruby scripts

Viewer

  • Overlay capabilities: multiple layouts can be loaded into one window
  • Very flexible layer configuration: many display options including choice of fill pattern and different frame and fill colors. Animation, transparency, dimming/highlighting ...
  • Layer grouping: the display properties of a group of layers can be changed at once
  • Advanced layer display attributes: layers can be named, they can carry additional transformations, select certain hierarchy levels or select shapes by their properties
  • Copy and paste of layers attributes to other panels
  • Drawing order: select the layer that is show on top
  • Descend into hierarchy: show a cell embedded into it's context
  • Flexible rulers: unlimited count, flexible display styles. Multiple templates can be configured, rules can be edited (move, delete, copy & paste)
  • Shape and instance browsers
  • Bookmarks, various zoom modes, mouse wheel support, screenshot function ...
  • Undo/redo on layer properties, for rulers ...
  • Save: save layout or parts (cells, layers) of it to a different format, with scaling or different database unit.
  • Image overlay capabilities: image files (i.e. jpg, png, gif) can be loaded and placed at an arbitrary position in the layout.
  • Marker browser: certain error report files can be loaded and a browser tool is provided.
  • Global transformation to flip/rotate image

Editor

  • Smart drawing functions with many options: angle constraints, grid ...
  • True, in-place editing in subcells, variant building function
  • Unlimited undo/redo
  • Smart partial editing function to stretch shapes, move edges or vertices
  • Copy and paste of shapes and whole cells, even to other layouts
  • Many advanced editing functions: hierarchical operations, booleans, clip, corner rounding, sizing, alignment, layer operations ...
  • Support for external libraries dynamically bound to a layout
  • Parametrizable cells

KLayout is a GDS and OASIS file viewer

Although a comparatively simple piece of software, a layout viewer is not only just a tool for the chip design engineer. Today design's complexity require not only a simple "viewer". Rather, a viewer is the microscope through which the engineer looks at the design.

There are numerous viewers available, but sadly there are not many which satisfy a few basic requirements. Most of them are commercial and expensive. If there is need for a simple, yet powerful viewer - here it is.

The main objective was to focus on the basic functionality but adding some useful features that many, even commercial viewers don't have.

First rarely any tool allows to place two or even more layout files over each other. It often happens that you receive some layers in one file, the other layers in another. Some tools allow to load multiple layouts and switch between the windows. Well, this may help - but still the possibility of overlaying two layouts offers much more comfort.

Sadly, almost no viewer is really precise. There is not much more annoying than a layout that changes when you zoom into it. Or placeholder shapes appearing at some zoom level and disappearing at the next, cell labels that cannot be caught because they jump around when you try to zoom them into view, and many other surprising ways or creative interpretation and optimization. This viewer shows the design as it is.

Only some viewers allow to make layers "transparent". Only this way, a stack of layers can be visualized effectively. In addition, this viewer can animate layers to make them blink or scroll the fill pattern. Animation is a good tool to highlight certain layers.

This viewer allows to display a layer "marked" by drawing a small cross on all shapes. There is no better way to visualize the distribution of a set of sparse error markers on a dense layout!

All comes wrapped in a nice, Qt based state of the art GUI. Usage of the viewer is simple and is similar to that of other tools.

KLayout is more

Starting with version 0.15, KLayout is also an editor that allows to change GDS and OASIS files and create them from scratch. See the release notes and the editor mode quickstart manual for a more detailed description. With version 0.22, parametrized cells became available in KLayout. See About PCell's for details about that feature.

KLayout also offers a Ruby-based scripting environment called "RBA" which allows to automate various tasks, mainly in the visualisation area but also for layout generation. In addition there is a macro development environment with a debugger and editor featuring syntax highlighting for example. See About Macro Development and Programming Ruby scripts for details about this feature.

KLayout is free

The viewer is published under GNU public license GPL version 2 or any later version (www.gnu.org) in compliance with the requirements for using the Qt open source licence. If may be copied and distributed freely.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of Merchantability or fitness for a particular purpose. Please use it AT YOUR OWN RISK.

Current status

The current version is 0.25. Although this low number reflects the early stage of development, the version is reasonably stable.

KLayout currently builds on recent Linux installations. Building on MacOS is possible basically. A binary distribution is available for Windows, both 32 and 64bit (both an installer and a .zip archive with the binaries and libraries). Debian packages are provided for Ubuntu 12.04 and similar Linux versions in 32 and 64bit version. Basically it can built on Windows using cygwin and MinGW although there are some limitations. For the precise requirements see the download and build page.

The Linux build is performed by a simple wrapper shell script rather than some sophisticated configuration setup. Some options allow to configure the script somewhat. For Windows, a solution for Visual Studio 2010 is provided.

The build requires the Qt4 GUI toolkit in the multithreaded version and a recent gcc version to build.

Documentation

There is a quick start manual available to explain the basic features. Also for editor mode, a editor mode quickstart manual is provided. More details and documentation can be found on the Main Documentation page. There is also a built-in help system, which can be accessed through the "Help/Assistant" menu.

The issue list for version 0.25 can be found in the known bugs and issues list

The future of the project

KLayout is a living project. The program is being used by people in their daily work already. As my time allows I will gradually enhance and extend the code.

Please feel free to issue feature requests to the mail address listed in the contact page. I am eager to learn about use cases and potential new applications for this tool.