Mask Software tools

From OptoelectronicsWiki
Jump to: navigation, search

L-Edit[edit]

Graphical mask writing, viewing, and conversion tool. [LEdit Download] from Nanofab (PC Only). When you install select typical workstation, network license, then at the last step of the install it will ask where to look where to find the license, use network (and local): "nanofabserver.ece.ucsb.edu" this should create an environment variables called: TANNERHOST = nanfabserver.ece.ucsb.edu and TANNERHOST2 = local


Using L-Edit's DRC to make sure no VCs on waveguides

Libmask[edit]

C++ mask writing program. Produces .CIF and/or .EGS mask files


Original Libmask:

media:LibMask_Dist_+_Examples.zip You will find detailed installation instructions for Mac and PC here. The dedicated page is here: Libmask

Newest version of Libmask:

media:LibmaskV6_00.zip Newest version of Libmask: allows for direct export to gds format. Includes installation instructions, documentation, etc.

media:LibmaskV6_01_byMike.zip Fixed a bug in the return value of the s-bend function. Added whats_pen() function to read the pen state.


Version 6 is quite a leap from the previous version, so compatibility with your old libmask files will be broken. However, there are three features that make the switch worthwhile:

1) You can now output GDSII files directly with libmaskv6.00!!

2) Compilation is now at least two orders of magnitude faster!! (this was an unexpected delight! I never understood why it was previously so slow)

3) The previously painful sublayout interface is upgraded with a much nicer one!!

I have not checked whether the speed increase is due to improved code design or the switch to GDSII format. I have attached the newer version of libmask that Martijn sent out, including a new makefile that makes the GDS (as opposed to CIF) libmask library. I've also attached an example mask, so that you can test everything out.

For easy switching, the mandatory changes to your c++ files are:

1) Change 'void main_layout(void)' to 'int main(void)'

2) add 'msk_header();' to the beginning of the main function (see section 2.2 of new manual)

3) add 'msk_trailer();' to end of the main function

4) there are extensive improvements to the sublayout interface.

Check out the manual for more information. the old way of doing sublayouts won't work!

Libmask + python[edit]

Steroids for Libmask: Mask/pylibMask, back-compatible with version 6

KLayout (with Ruby scripting for layer addition, subtraction, rotation and shifting)[edit]

For a great free program that you can view you mask files in, use KLayout. It is fast and handles HUGE mask files with ease. http://www.klayout.de/build.html

If you want to write small scripts that will do the functions that you need to place your masks into a frame for the vendor, try using the Ruby script plug-in. Download the link here under "A layer processing framework": http://www.klayout.de/useful_scripts.html#layer_proc.rbm, put the file in the klayout folder and restart klayout. There should be a new option in the "Tools" tab entitled "Processing Scripts".

Read the download file in a text editor for documentation on the syntax. It works great.