Bundle

Most layout file formats do not support storing of layer information. It is usually required to load the layout design separately from the layer setup. Schematics are not stored and also need their own file to store the information. To avoid any proprietary file formats, the LayoutEditor can store all this information in a bundle. The main file of a bundle with the extension ".bundle.layout" is a LayoutEditor macro with the layer setup. The macro also includes a loading of the design and the schematic. The layout design itself is stored in a g'zipped GDSII file format next to the bundle macro. The same is done with the schematic, if it exists. It will be saved in the LES format. When using bundles you will have the advantage of a single file load which includes all aspects of the design: layer setup, layout design and schematic. This option comes without the disadvantage of a non-public file format.

Using the Bundle within the LayoutEditor

A bundle can be opened/saved like any other layout design file format. This is done via the file menu or the open/save button in the toolbar and can be opened from the LayoutEditor or the SchematicEditor. The full version is required to use this feature.

Be aware that the layer setup in the LayoutEditor is global. If you have two designs with different layer setups, having a bundle open will change the layer setup of the prior open design. To avoid this, start the LayoutEditor twice. Both instances of the LayoutEditor will then have a different layer setups.

Bundle File Format

Internally, a bundle file format is nothing more than a simple macro. This macro will do the layer setup and loads the schematic and the layout. Here is an example of an bundle file:

#!/usr/bin/layout
#name=technology file: ocl_example1.bundle.layout
#help=technology file automatically generated

int main(){
layers::enableAllLayer();
layers::num[0].name="0";
layers::num[0].setStyle(7);
layers::num[0].setColor(255,0,0);
layers::num[0].set3dView(0,0);
layers::num[0].shortkey="e";
...
file f;
string path=f.currentPath();
layout->closeDesign();
layout->drawing->openFile("ocl_example1.gds.gz");
layout->filename=path+"/ocl_example1.gds.gz";
schematic->drawing->openFile("ocl_example1.les");
schematic->filename=path+"/ocl_example1.les";
}