Skip to main content

Mask dataprep with klayout

Project description

[![Build Status](https://travis-ci.org/atait/lytest.svg?branch=master)](https://travis-ci.org/atait/lytest)

# lymask

Mask dataprep and DRC with python and klayout.

Procedures are interpreted from YAML files which means they - are easy to understand and edit - can be modified without restarting klayout - are declaritive, so their parameters can be accessed by other programs

Multiple entry points - GUI menu: used for basic development and debug - Command line: used for batch processing, particularly on remote computers - API functions: used for automation within a larger program

## Installation ` pip install lymask lygadgets_link lymask `

## Commands See the tests for usage examples.

_Dataprep_ - check_floorplan - flatten - erase_text_and_other_junk - convert_wgs - nanowire_heal - processor - nanowire_sleeve - waveguide_sleeve - ground_plane - metal_pedestal - precomp - mask_map - smooth_floating - clear_nonmask - align_corners

_DRC_ - make_rdbcells - processor - drcX - width - space - inclusion - exclusion

## Configure your technology KLayout-style technologies are directories that include a .lyt file and usually a layer properties .lyp file. lymask looks for available scripts in specific locations within “dataprep” and “drc” subdirectories. The structure should look like this ` My_Tech | - My_Tech.lyt | - klayout_layers_My_Tech.lyp | - dataprep | | - my_dataprep_procedure.yml | | - klayout_layers_dataprep.lyp | - drc | | - my_drc_procedure.yml ` klayout_layers_dataprep.lyp can have multiple groups. See the tests for an example. In the GUI, lymask translates these groups into layer tabs for ease of viewing. This is done with “Reload Dataprep (Ctrl-L)” in the lymask menu.

## Multithreading Data from doing a DRC space_check Vs number of tiles. A 6 mm x 7.75 mm die. 500nm space check on a fairly full layer (metal with ground plane). Tile border is 1000nm. Machine was a 4-core laptop. Thread count = 4.

Tile border = 1000 nm - 1: 108 sec - 2x2: 41 sec - 3x3: 94 sec - 4x4: 82 sec - 10x10: 215 sec

Tile border = 550 nm - 2x2: 35 sec (repeated twice, same value) - 3x3: 37 sec - 4x4: 57 sec - 8x8: 59 sec - 1x4: 56 sec - 1x16: 62 sec

With angle 40 (gives no violations. other one gave 140 violations) - 2x2: 17 sec (repeated thrice) - 2x2 with violation: 26 sec (error was appropriately caught) - 3x3: 18 sec

No tile border - 2x2: 28 sec - 3x3: 16 sec - 3x3, 12 threads: 15 sec - 8x8: 14 sec - 16x16: 16 sec

## Running tests To test command line and API, run pytest tests. You can also go in the GUI and do it there, but that has to be manual

## DRC todo XX - batch launching XX - output to lyrdb files XX - command line reorganization XX - tests: generate the files and compare as xmldicts XX - angle limits - tiling XX - drc exclude - falling back on designer layers? XX - inclusion, exclusion - self overlap - minimum area - edge lengths - run other files XX - define your own in your dataprep directory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lymask-0.1.2.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

lymask-0.1.2-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file lymask-0.1.2.tar.gz.

File metadata

  • Download URL: lymask-0.1.2.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.6.7

File hashes

Hashes for lymask-0.1.2.tar.gz
Algorithm Hash digest
SHA256 bd559d81e3d0681cdee9ebdaad88c9b62070a5239d40bffde958d8f16e11416b
MD5 495a883c8b1370d3df5e10530531e7a3
BLAKE2b-256 cd28b7af52a133f2b71067d1d42126d69d916053c562b0819105f9a724646289

See more details on using hashes here.

File details

Details for the file lymask-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: lymask-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.6.7

File hashes

Hashes for lymask-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8745c26e9622edc2bd7687c975d0938421038919e940be6baaa1f66a9c2bbec0
MD5 3488e2ae04a83b0e2078d0c8edaa0af3
BLAKE2b-256 2a7c5f50ffbe09476e5f2fb92e73c1df98814cbfd86f408afe6398003441d909

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page