You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.0 KiB
Python
129 lines
3.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
#
|
|
# Copyright © 2010 Eugeniy Meshcheryakov <eugen@debian.org>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# 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. See the
|
|
# GNU Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
"""
|
|
:mod:`gdsii.tags` --- definitions of GDSII tags
|
|
===============================================
|
|
|
|
This module containing definitions of GDSII record tags.
|
|
|
|
.. moduleauthor:: Eugeniy Meshcheryakov <eugen@debian.org>
|
|
"""
|
|
|
|
DICT = {
|
|
'HEADER': 0x0002,
|
|
'BGNLIB': 0x0102,
|
|
'LIBNAME': 0x0206,
|
|
'UNITS': 0x0305,
|
|
'ENDLIB': 0x0400,
|
|
'BGNSTR': 0x0502,
|
|
'STRNAME': 0x0606,
|
|
'ENDSTR': 0x0700,
|
|
'BOUNDARY': 0x0800,
|
|
'PATH': 0x0900,
|
|
'SREF': 0x0A00,
|
|
'AREF': 0x0B00,
|
|
'TEXT': 0x0C00,
|
|
'LAYER': 0x0D02,
|
|
'DATATYPE': 0x0E02,
|
|
'WIDTH': 0x0F03,
|
|
'XY': 0x1003,
|
|
'ENDEL': 0x1100,
|
|
'SNAME': 0x1206,
|
|
'COLROW': 0x1302,
|
|
'TEXTNODE': 0x1400,
|
|
'NODE': 0x1500,
|
|
'TEXTTYPE': 0x1602,
|
|
'PRESENTATION': 0x1701,
|
|
# SPACING: 0x18??
|
|
'STRING': 0x1906,
|
|
'STRANS': 0x1A01,
|
|
'MAG': 0x1B05,
|
|
'ANGLE': 0x1C05,
|
|
# UINTEGER: 0x1D??
|
|
# USTRING: 0x1E??
|
|
'REFLIBS': 0x1F06,
|
|
'FONTS': 0x2006,
|
|
'PATHTYPE': 0x2102,
|
|
'GENERATIONS': 0x2202,
|
|
'ATTRTABLE': 0x2306,
|
|
'STYPTABLE': 0x2406,
|
|
'STRTYPE': 0x2502,
|
|
'ELFLAGS': 0x2601,
|
|
'ELKEY': 0x2703,
|
|
# LINKTYPE: 0x28??
|
|
# LINKKEYS: 0x29??
|
|
'NODETYPE': 0x2A02,
|
|
'PROPATTR': 0x2B02,
|
|
'PROPVALUE': 0x2C06,
|
|
'BOX': 0x2D00,
|
|
'BOXTYPE': 0x2E02,
|
|
'PLEX': 0x2F03,
|
|
'BGNEXTN': 0x3003,
|
|
'ENDEXTN': 0x3103,
|
|
'TAPENUM': 0x3202,
|
|
'TAPECODE': 0x3302,
|
|
'STRCLASS': 0x3401,
|
|
# RESERVED: 0x3503
|
|
'FORMAT': 0x3602,
|
|
'MASK': 0x3706,
|
|
'ENDMASKS': 0x3800,
|
|
'LIBDIRSIZE': 0x3902,
|
|
'SRFNAME': 0x3A06,
|
|
'LIBSECUR': 0x3B02,
|
|
# Types used only with Custom Plus
|
|
'BORDER': 0x3C00,
|
|
'SOFTFENCE': 0x3D00,
|
|
'HARDFENCE': 0x3E00,
|
|
'SOFTWIRE': 0x3F00,
|
|
'HARDWIRE': 0x4000,
|
|
'PATHPORT': 0x4100,
|
|
'NODEPORT': 0x4200,
|
|
'USERCONSTRAINT': 0x4300,
|
|
'SPACERERROR': 0x4400,
|
|
'CONTACT': 0x4500
|
|
}
|
|
|
|
REV_DICT = {}
|
|
|
|
for (key, value) in DICT.items():
|
|
globals()[key] = value
|
|
REV_DICT[value] = key
|
|
|
|
del key, value
|
|
|
|
def type_of_tag(tag):
|
|
"""
|
|
Returns type of a tag.
|
|
|
|
:param tag: tag ID
|
|
:type tag: int
|
|
:rtype: int
|
|
|
|
Examples:
|
|
|
|
>>> type_of_tag(HEADER)
|
|
2
|
|
>>> type_of_tag(MASK)
|
|
6
|
|
|
|
"""
|
|
return tag & 0xff
|
|
|
|
if __name__ == '__main__':
|
|
import doctest
|
|
doctest.testmod()
|