mirror of https://github.com/KLayout/klayout.git
First version of DEF reader with GROUPS/REGIONS - needs feedback.
This commit is contained in:
parent
56b9c73015
commit
0ecc8ee093
|
|
@ -190,7 +190,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/clear.png</normaloff>:/clear.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -204,7 +204,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/add.png</normaloff>:/add.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -218,7 +218,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/up.png</normaloff>:/up.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -232,7 +232,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/down.png</normaloff>:/down.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -298,7 +298,7 @@
|
|||
<tabstop>buttonBox</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../lay/layResources.qrc"/>
|
||||
<include location="../../lay/lay/layResources.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/clear.png</normaloff>:/clear.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -140,7 +140,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/down.png</normaloff>:/down.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -167,7 +167,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/add.png</normaloff>:/add.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -181,7 +181,7 @@
|
|||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../lay/layResources.qrc">
|
||||
<iconset resource="../../lay/lay/layResources.qrc">
|
||||
<normaloff>:/up.png</normaloff>:/up.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -264,18 +264,126 @@
|
|||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="7">
|
||||
<widget class="QLabel" name="lbl1">
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Layer name suffix ...</string>
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5" colspan="2">
|
||||
<widget class="QLabel" name="label">
|
||||
<item row="5" column="7">
|
||||
<widget class="QLineEdit" name="suffix_labels"/>
|
||||
</item>
|
||||
<item row="1" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="net_prop_name"/>
|
||||
</item>
|
||||
<item row="5" column="6">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="8">
|
||||
<widget class="QLineEdit" name="datatype_blockages"/>
|
||||
</item>
|
||||
<item row="6" column="5">
|
||||
<widget class="QCheckBox" name="produce_blockages">
|
||||
<property name="text">
|
||||
<string>Blockages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="6">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="8">
|
||||
<widget class="QLineEdit" name="datatype_routing"/>
|
||||
</item>
|
||||
<item row="4" column="2" colspan="2">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>On layer with spec ...</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="5">
|
||||
<widget class="QCheckBox" name="produce_labels">
|
||||
<property name="text">
|
||||
<string>Pin labels</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
<widget class="QCheckBox" name="produce_pins">
|
||||
<property name="text">
|
||||
<string>Pins</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<widget class="QCheckBox" name="produce_via_geometry">
|
||||
<property name="text">
|
||||
<string>Via geometry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="5">
|
||||
<widget class="QCheckBox" name="produce_routing">
|
||||
<property name="text">
|
||||
<string>Routing</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Produce ...</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QCheckBox" name="produce_outlines">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cell outlines</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
|
|
@ -285,32 +393,65 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4" rowspan="7">
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<item row="4" column="7">
|
||||
<widget class="QLineEdit" name="suffix_routing"/>
|
||||
</item>
|
||||
<item row="1" column="8">
|
||||
<widget class="QLineEdit" name="datatype_via_geometry"/>
|
||||
</item>
|
||||
<item row="3" column="8">
|
||||
<widget class="QLineEdit" name="datatype_obstructions"/>
|
||||
<item row="5" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="outline_layer"/>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<widget class="QLabel" name="lbl1">
|
||||
<property name="text">
|
||||
<string>Layer name suffix ...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="8">
|
||||
<widget class="QLineEdit" name="datatype_pins"/>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="2">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>As properties with name ...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="8">
|
||||
<widget class="QLineEdit" name="datatype_labels"/>
|
||||
</item>
|
||||
<item row="4" column="8">
|
||||
<widget class="QLineEdit" name="datatype_routing"/>
|
||||
<item row="6" column="0">
|
||||
<widget class="QCheckBox" name="produce_placement_blockages">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Blockages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="7">
|
||||
<widget class="QLineEdit" name="suffix_blockages"/>
|
||||
<item row="6" column="6">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="7">
|
||||
<widget class="QLineEdit" name="suffix_obstructions"/>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="4">
|
||||
<item row="3" column="0" colspan="4">
|
||||
<widget class="QLabel" name="help_label">
|
||||
<property name="text">
|
||||
<string><html><body>(<a href="int:/about/variant_notation.xml">See here for the name notation</a>)</body></html></string>
|
||||
|
|
@ -320,6 +461,12 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="7">
|
||||
<widget class="QLineEdit" name="suffix_blockages"/>
|
||||
</item>
|
||||
<item row="2" column="7">
|
||||
<widget class="QLineEdit" name="suffix_pins"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="produce_net_names">
|
||||
<property name="font">
|
||||
|
|
@ -334,115 +481,22 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="8">
|
||||
<widget class="QLineEdit" name="datatype_pins"/>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
<widget class="QCheckBox" name="produce_pins">
|
||||
<property name="text">
|
||||
<string>Pins</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="5">
|
||||
<widget class="QCheckBox" name="produce_routing">
|
||||
<property name="text">
|
||||
<string>Routing</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="7">
|
||||
<widget class="QLineEdit" name="suffix_pins"/>
|
||||
</item>
|
||||
<item row="1" column="7">
|
||||
<widget class="QLineEdit" name="suffix_via_geometry"/>
|
||||
</item>
|
||||
<item row="3" column="5">
|
||||
<widget class="QCheckBox" name="produce_obstructions">
|
||||
<property name="text">
|
||||
<string>Obstructions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="7">
|
||||
<widget class="QLineEdit" name="suffix_routing"/>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<widget class="QCheckBox" name="produce_via_geometry">
|
||||
<property name="text">
|
||||
<string>Via geometry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="2">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>As properties with name ...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="8">
|
||||
<widget class="QLineEdit" name="datatype_blockages"/>
|
||||
</item>
|
||||
<item row="5" column="5">
|
||||
<widget class="QCheckBox" name="produce_labels">
|
||||
<property name="text">
|
||||
<string>Pin labels</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="7">
|
||||
<widget class="QLineEdit" name="suffix_labels"/>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QCheckBox" name="produce_placement_blockages">
|
||||
<item row="3" column="6">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Blockages</string>
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="outline_layer"/>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QCheckBox" name="produce_outlines">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cell outlines</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="5">
|
||||
<widget class="QCheckBox" name="produce_blockages">
|
||||
<property name="text">
|
||||
<string>Blockages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2" colspan="2">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>On layer with spec ...</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="placement_blockage_layer"/>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="sizePolicy">
|
||||
|
|
@ -455,12 +509,25 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="net_prop_name"/>
|
||||
<item row="1" column="6">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLabel" name="label_9">
|
||||
|
|
@ -474,10 +541,20 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="produce_inst_names">
|
||||
<property name="text">
|
||||
<string>Inst names</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="placement_blockage_layer"/>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="font">
|
||||
|
|
@ -493,37 +570,8 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="6">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<item row="2" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="inst_prop_name"/>
|
||||
</item>
|
||||
<item row="4" column="6">
|
||||
<widget class="QLabel" name="label_15">
|
||||
|
|
@ -537,51 +585,12 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Produce ...</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="6">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="6">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
<item row="3" column="8">
|
||||
<widget class="QLineEdit" name="datatype_obstructions"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_11">
|
||||
|
|
@ -595,26 +604,57 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="6">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<item row="1" column="7">
|
||||
<widget class="QLineEdit" name="suffix_via_geometry"/>
|
||||
</item>
|
||||
<item row="3" column="5">
|
||||
<widget class="QCheckBox" name="produce_obstructions">
|
||||
<property name="text">
|
||||
<string>Obstructions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="7">
|
||||
<widget class="QLineEdit" name="suffix_obstructions"/>
|
||||
</item>
|
||||
<item row="0" column="5" colspan="2">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Produce ...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QCheckBox" name="produce_regions">
|
||||
<property name="text">
|
||||
<string>Regions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../lay/layResources.qrc">:/right.png</pixmap>
|
||||
<pixmap resource="../../lay/lay/layResources.qrc">:/right.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4" rowspan="8">
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2" colspan="2">
|
||||
<widget class="QLineEdit" name="region_layer"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -734,7 +774,7 @@
|
|||
<tabstop>read_all_cbx</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../lay/layResources.qrc"/>
|
||||
<include location="../../lay/lay/layResources.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "extDEFImporter.h"
|
||||
#include "dbPolygonTools.h"
|
||||
#include "tlGlobPattern.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
|
|
@ -124,6 +125,28 @@ DEFImporter::read_rect (db::Polygon &poly, double scale)
|
|||
poly = db::Polygon (db::Box (pt1, pt2));
|
||||
}
|
||||
|
||||
struct Group
|
||||
{
|
||||
Group (const std::string &n, const std::string &rn, const std::vector<tl::GlobPattern> &m)
|
||||
: name (n), region_name (rn), comp_match (m)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
bool comp_matches (const std::string &name) const
|
||||
{
|
||||
for (std::vector<tl::GlobPattern>::const_iterator m = comp_match.begin (); m != comp_match.end (); ++m) {
|
||||
if (m->match (name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string name, region_name;
|
||||
std::vector<tl::GlobPattern> comp_match;
|
||||
};
|
||||
|
||||
void
|
||||
DEFImporter::do_read (db::Layout &layout)
|
||||
{
|
||||
|
|
@ -131,6 +154,9 @@ DEFImporter::do_read (db::Layout &layout)
|
|||
double scale = 1.0 / (dbu_mic * layout.dbu ());
|
||||
std::map<int, db::Polygon> styles;
|
||||
std::map<std::string, ViaDesc> via_desc;
|
||||
std::map<std::string, std::vector<db::Polygon> > regions;
|
||||
std::list<Group> groups;
|
||||
std::list<std::pair<std::string, db::CellInstArray> > instances;
|
||||
|
||||
db::Cell &design = layout.cell (layout.add_cell ("TOP"));
|
||||
|
||||
|
|
@ -241,10 +267,43 @@ DEFImporter::do_read (db::Layout &layout)
|
|||
test ("NONDEFAULTRULES");
|
||||
|
||||
} else if (test ("REGIONS")) {
|
||||
// read over REGIONS statements
|
||||
while (! test ("END") || ! test ("REGIONS")) {
|
||||
take ();
|
||||
|
||||
// Read REGION statements
|
||||
get_long ();
|
||||
expect (";");
|
||||
|
||||
while (test ("-")) {
|
||||
|
||||
std::string n = get ();
|
||||
std::vector<db::Polygon> &polygons = regions [n];
|
||||
|
||||
while (! peek (";")) {
|
||||
|
||||
if (test ("+")) {
|
||||
|
||||
// ignore other options for now
|
||||
while (! peek (";")) {
|
||||
take ();
|
||||
}
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
db::Polygon box;
|
||||
read_rect (box, scale);
|
||||
polygons.push_back (box);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
test (";");
|
||||
|
||||
}
|
||||
|
||||
test ("END");
|
||||
test ("REGIONS");
|
||||
|
||||
} else if (test ("PINPROPERTIES")) {
|
||||
// read over PINPROPERTIES statements
|
||||
while (! test ("END") || ! test ("PINPROPERTIES")) {
|
||||
|
|
@ -266,10 +325,49 @@ DEFImporter::do_read (db::Layout &layout)
|
|||
take ();
|
||||
}
|
||||
} else if (test ("GROUPS")) {
|
||||
// read over GROUPS statements
|
||||
while (! test ("END") || ! test ("GROUPS")) {
|
||||
take ();
|
||||
|
||||
// Read GROUPS statements
|
||||
get_long ();
|
||||
expect (";");
|
||||
|
||||
while (test ("-")) {
|
||||
|
||||
std::string n = get ();
|
||||
std::string rn;
|
||||
std::vector<tl::GlobPattern> match;
|
||||
|
||||
while (! peek (";")) {
|
||||
|
||||
if (test ("+")) {
|
||||
|
||||
// gets the region name if there is one
|
||||
if (test ("REGION")) {
|
||||
rn = get ();
|
||||
}
|
||||
|
||||
// ignore the reset for now
|
||||
while (! peek (";")) {
|
||||
take ();
|
||||
}
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
match.push_back (tl::GlobPattern (get ()));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
groups.push_back (Group (n, rn, match));
|
||||
|
||||
test (";");
|
||||
|
||||
}
|
||||
|
||||
test ("END");
|
||||
test ("GROUPS");
|
||||
|
||||
} else if (test ("BEGINEXT")) {
|
||||
// read over BEGINEXT sections
|
||||
while (! test ("ENDEXT")) {
|
||||
|
|
@ -896,7 +994,7 @@ DEFImporter::do_read (db::Layout &layout)
|
|||
|
||||
while (test ("-")) {
|
||||
|
||||
take (); // instance name
|
||||
std::string inst_name = get ();
|
||||
std::string model = get ();
|
||||
|
||||
db::Cell *cell = m_lef_importer.macro_by_name (model);
|
||||
|
|
@ -915,9 +1013,10 @@ DEFImporter::do_read (db::Layout &layout)
|
|||
db::Vector d = pt - m_lef_importer.macro_bbox_by_name (model).transformed (ft).lower_left ();
|
||||
|
||||
if (cell) {
|
||||
design.insert (db::CellInstArray (db::CellInst (cell->cell_index ()), db::Trans (ft.rot (), d)));
|
||||
db::CellInstArray inst (db::CellInst (cell->cell_index ()), db::Trans (ft.rot (), d));
|
||||
instances.push_back (std::make_pair (inst_name, inst));
|
||||
} else {
|
||||
warn (tl::to_string (QObject::tr ("Macro not found in LEF file: ")) + model);
|
||||
warn (tl::to_string (QObject::tr ("Macro not found in LEF file: ")) + model);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
@ -1086,6 +1185,82 @@ DEFImporter::do_read (db::Layout &layout)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
// now we have collected the groups, regions and instances we create new subcells for each group
|
||||
// and put the instances for this group there
|
||||
|
||||
db::Cell *others_cell = &design;
|
||||
|
||||
if (! groups.empty ()) {
|
||||
|
||||
others_cell = &layout.cell (layout.add_cell ("NOGROUP"));
|
||||
design.insert (db::CellInstArray (others_cell->cell_index (), db::Trans ()));
|
||||
|
||||
// Walk through the groups, create a group container cell and put all instances
|
||||
// that match the group match string there. Then delete these cells (spec says "do not assign any component to more than one group").
|
||||
|
||||
for (std::list<Group>::const_iterator g = groups.begin (); g != groups.end (); ++g) {
|
||||
|
||||
db::Cell *group_cell = &layout.cell (layout.add_cell (("GROUP_" + g->name).c_str ()));
|
||||
design.insert (db::CellInstArray (group_cell->cell_index (), db::Trans ()));
|
||||
|
||||
if (! g->region_name.empty ()) {
|
||||
|
||||
std::map<std::string, std::vector<db::Polygon> >::const_iterator r = regions.find (g->region_name);
|
||||
if (r == regions.end ()) {
|
||||
warn (tl::to_string (QObject::tr ("Not a valid region name: %1 in group %2").arg (tl::to_qstring (g->region_name).arg (tl::to_qstring (g->name)))));
|
||||
} else {
|
||||
std::pair <bool, unsigned int> dl = open_layer (layout, std::string (), Region);
|
||||
if (dl.first) {
|
||||
for (std::vector<db::Polygon>::const_iterator p = r->second.begin (); p != r->second.end (); ++p) {
|
||||
group_cell->shapes (dl.second).insert (*p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (! g->comp_match.empty ()) {
|
||||
|
||||
for (std::list<std::pair<std::string, db::CellInstArray> >::iterator i = instances.begin (); i != instances.end (); ) {
|
||||
|
||||
std::list<std::pair<std::string, db::CellInstArray> >::iterator ii = i++;
|
||||
if (g->comp_matches (ii->first)) {
|
||||
|
||||
if (produce_inst_props ()) {
|
||||
db::PropertiesRepository::properties_set props;
|
||||
props.insert (std::make_pair (inst_prop_name_id (), tl::Variant (ii->first)));
|
||||
group_cell->insert (db::CellInstArrayWithProperties (ii->second, layout.properties_repository ().properties_id (props)));
|
||||
} else {
|
||||
group_cell->insert (ii->second);
|
||||
}
|
||||
|
||||
instances.erase (ii);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// treat all remaining cells and put them into the "others_cell" which is the top cell
|
||||
// if there are no groups.
|
||||
|
||||
for (std::list<std::pair<std::string, db::CellInstArray> >::iterator ii = instances.begin (); ii != instances.end (); ++ii) {
|
||||
|
||||
if (produce_inst_props ()) {
|
||||
db::PropertiesRepository::properties_set props;
|
||||
props.insert (std::make_pair (inst_prop_name_id (), tl::Variant (ii->first)));
|
||||
others_cell->insert (db::CellInstArrayWithProperties (ii->second, layout.properties_repository ().properties_id (props)));
|
||||
} else {
|
||||
others_cell->insert (ii->second);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -345,8 +345,10 @@ LEFDEFReaderOptionsEditor::LEFDEFReaderOptionsEditor (QWidget *parent)
|
|||
setupUi (this);
|
||||
|
||||
connect (produce_net_names, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_inst_names, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_outlines, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_placement_blockages, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_regions, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_via_geometry, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_pins, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
connect (produce_obstructions, SIGNAL (stateChanged (int)), this, SLOT (checkbox_changed ()));
|
||||
|
|
@ -372,6 +374,7 @@ LEFDEFReaderOptionsEditor::commit (db::FormatSpecificReaderOptions *options, con
|
|||
data->set_read_all_layers (read_all_cbx->isChecked ());
|
||||
data->set_layer_map (layer_map->get_layer_map ());
|
||||
data->set_produce_net_names (produce_net_names->isChecked ());
|
||||
data->set_produce_inst_names (produce_inst_names->isChecked ());
|
||||
|
||||
double dbu_value = 0.0;
|
||||
tl::from_string (tl::to_string (dbu->text ()), dbu_value);
|
||||
|
|
@ -390,8 +393,20 @@ LEFDEFReaderOptionsEditor::commit (db::FormatSpecificReaderOptions *options, con
|
|||
data->set_net_property_name (v);
|
||||
}
|
||||
|
||||
// parse the inst property name (may throw an exception)
|
||||
{
|
||||
std::string np = tl::to_string (inst_prop_name->text ());
|
||||
tl::Extractor ex (np.c_str ());
|
||||
tl::Variant v;
|
||||
ex.read (v);
|
||||
ex.expect_end ();
|
||||
data->set_inst_property_name (v);
|
||||
}
|
||||
|
||||
data->set_produce_cell_outlines (produce_outlines->isChecked ());
|
||||
data->set_cell_outline_layer (tl::to_string (outline_layer->text ()));
|
||||
data->set_produce_regions (produce_regions->isChecked ());
|
||||
data->set_region_layer (tl::to_string (region_layer->text ()));
|
||||
data->set_produce_placement_blockages (produce_placement_blockages->isChecked ());
|
||||
data->set_placement_blockage_layer (tl::to_string (placement_blockage_layer->text ()));
|
||||
data->set_produce_via_geometry (produce_via_geometry->isChecked ());
|
||||
|
|
@ -436,8 +451,12 @@ LEFDEFReaderOptionsEditor::setup (const db::FormatSpecificReaderOptions *options
|
|||
layer_map->set_layer_map (data->layer_map ());
|
||||
produce_net_names->setChecked (data->produce_net_names ());
|
||||
net_prop_name->setText (tl::to_qstring (data->net_property_name ().to_parsable_string ()));
|
||||
produce_inst_names->setChecked (data->produce_inst_names ());
|
||||
inst_prop_name->setText (tl::to_qstring (data->inst_property_name ().to_parsable_string ()));
|
||||
produce_outlines->setChecked (data->produce_cell_outlines ());
|
||||
outline_layer->setText (tl::to_qstring (data->cell_outline_layer ()));
|
||||
produce_regions->setChecked (data->produce_regions ());
|
||||
region_layer->setText (tl::to_qstring (data->region_layer ()));
|
||||
produce_placement_blockages->setChecked (data->produce_placement_blockages ());
|
||||
placement_blockage_layer->setText (tl::to_qstring (data->placement_blockage_layer ()));
|
||||
produce_via_geometry->setChecked (data->produce_via_geometry ());
|
||||
|
|
@ -478,7 +497,9 @@ void
|
|||
LEFDEFReaderOptionsEditor::checkbox_changed ()
|
||||
{
|
||||
net_prop_name->setEnabled (produce_net_names->isChecked ());
|
||||
inst_prop_name->setEnabled (produce_inst_names->isChecked ());
|
||||
outline_layer->setEnabled (produce_outlines->isChecked ());
|
||||
region_layer->setEnabled (produce_regions->isChecked ());
|
||||
placement_blockage_layer->setEnabled (produce_placement_blockages->isChecked ());
|
||||
suffix_via_geometry->setEnabled (produce_via_geometry->isChecked ());
|
||||
suffix_pins->setEnabled (produce_pins->isChecked ());
|
||||
|
|
|
|||
|
|
@ -42,10 +42,14 @@ LEFDEFReaderOptions::LEFDEFReaderOptions ()
|
|||
m_dbu (0.001),
|
||||
m_produce_net_names (true),
|
||||
m_net_property_name (1),
|
||||
m_produce_inst_names (true),
|
||||
m_inst_property_name (1),
|
||||
m_produce_cell_outlines (true),
|
||||
m_cell_outline_layer ("OUTLINE"),
|
||||
m_produce_placement_blockages (true),
|
||||
m_placement_blockage_layer ("PLACEMENT_BLK"),
|
||||
m_produce_regions (true),
|
||||
m_region_layer ("REGIONS"),
|
||||
m_produce_via_geometry (true),
|
||||
m_via_geometry_suffix (""),
|
||||
m_via_geometry_datatype (0),
|
||||
|
|
@ -74,10 +78,14 @@ LEFDEFReaderOptions::LEFDEFReaderOptions (const LEFDEFReaderOptions &d)
|
|||
m_dbu (d.m_dbu),
|
||||
m_produce_net_names (d.m_produce_net_names),
|
||||
m_net_property_name (d.m_net_property_name),
|
||||
m_produce_inst_names (d.m_produce_inst_names),
|
||||
m_inst_property_name (d.m_inst_property_name),
|
||||
m_produce_cell_outlines (d.m_produce_cell_outlines),
|
||||
m_cell_outline_layer (d.m_cell_outline_layer),
|
||||
m_produce_placement_blockages (d.m_produce_placement_blockages),
|
||||
m_placement_blockage_layer (d.m_placement_blockage_layer),
|
||||
m_produce_regions (d.m_produce_regions),
|
||||
m_region_layer (d.m_region_layer),
|
||||
m_produce_via_geometry (d.m_produce_via_geometry),
|
||||
m_via_geometry_suffix (d.m_via_geometry_suffix),
|
||||
m_via_geometry_datatype (d.m_via_geometry_datatype),
|
||||
|
|
@ -136,7 +144,7 @@ LEFDEFLayerDelegate::register_layer (const std::string &ln)
|
|||
std::pair <bool, unsigned int>
|
||||
LEFDEFLayerDelegate::open_layer (db::Layout &layout, const std::string &n, LayerPurpose purpose)
|
||||
{
|
||||
if (purpose == Outline || purpose == PlacementBlockage) {
|
||||
if (purpose == Outline || purpose == PlacementBlockage || purpose == Region) {
|
||||
|
||||
std::string ld;
|
||||
bool produce;
|
||||
|
|
@ -144,6 +152,9 @@ LEFDEFLayerDelegate::open_layer (db::Layout &layout, const std::string &n, Layer
|
|||
if (purpose == Outline) {
|
||||
produce = mp_tech_comp->produce_cell_outlines ();
|
||||
ld = mp_tech_comp->cell_outline_layer ();
|
||||
} else if (purpose == Region) {
|
||||
produce = mp_tech_comp->produce_regions ();
|
||||
ld = mp_tech_comp->region_layer ();
|
||||
} else {
|
||||
produce = mp_tech_comp->produce_placement_blockages ();
|
||||
ld = mp_tech_comp->placement_blockage_layer ();
|
||||
|
|
@ -348,7 +359,8 @@ LEFDEFLayerDelegate::finish (db::Layout &layout)
|
|||
|
||||
LEFDEFImporter::LEFDEFImporter ()
|
||||
: mp_progress (0), mp_stream (0), mp_layer_delegate (0),
|
||||
m_produce_net_props (false), m_net_prop_name_id (0)
|
||||
m_produce_net_props (false), m_net_prop_name_id (0),
|
||||
m_produce_inst_props (false), m_inst_prop_name_id (0)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
|
@ -376,6 +388,14 @@ LEFDEFImporter::read (tl::InputStream &stream, db::Layout &layout, LEFDEFLayerDe
|
|||
m_net_prop_name_id = layout.properties_repository ().prop_name_id (ld.tech_comp ()->net_property_name ());
|
||||
}
|
||||
|
||||
m_produce_inst_props = false;
|
||||
m_inst_prop_name_id = 0;
|
||||
|
||||
if (ld.tech_comp () && ld.tech_comp ()->produce_inst_names ()) {
|
||||
m_produce_inst_props = true;
|
||||
m_inst_prop_name_id = layout.properties_repository ().prop_name_id (ld.tech_comp ()->inst_property_name ());
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
mp_progress = &progress;
|
||||
|
|
|
|||
|
|
@ -126,6 +126,26 @@ public:
|
|||
m_net_property_name = s;
|
||||
}
|
||||
|
||||
bool produce_inst_names () const
|
||||
{
|
||||
return m_produce_inst_names;
|
||||
}
|
||||
|
||||
void set_produce_inst_names (bool f)
|
||||
{
|
||||
m_produce_inst_names = f;
|
||||
}
|
||||
|
||||
const tl::Variant &inst_property_name () const
|
||||
{
|
||||
return m_inst_property_name;
|
||||
}
|
||||
|
||||
void set_inst_property_name (const tl::Variant &s)
|
||||
{
|
||||
m_inst_property_name = s;
|
||||
}
|
||||
|
||||
bool produce_cell_outlines () const
|
||||
{
|
||||
return m_produce_cell_outlines;
|
||||
|
|
@ -166,6 +186,26 @@ public:
|
|||
m_placement_blockage_layer = s;
|
||||
}
|
||||
|
||||
bool produce_regions () const
|
||||
{
|
||||
return m_produce_regions;
|
||||
}
|
||||
|
||||
void set_produce_regions (bool f)
|
||||
{
|
||||
m_produce_regions = f;
|
||||
}
|
||||
|
||||
const std::string ®ion_layer () const
|
||||
{
|
||||
return m_region_layer;
|
||||
}
|
||||
|
||||
void set_region_layer (const std::string &s)
|
||||
{
|
||||
m_region_layer = s;
|
||||
}
|
||||
|
||||
bool produce_via_geometry () const
|
||||
{
|
||||
return m_produce_via_geometry;
|
||||
|
|
@ -382,10 +422,14 @@ private:
|
|||
double m_dbu;
|
||||
bool m_produce_net_names;
|
||||
tl::Variant m_net_property_name;
|
||||
bool m_produce_inst_names;
|
||||
tl::Variant m_inst_property_name;
|
||||
bool m_produce_cell_outlines;
|
||||
std::string m_cell_outline_layer;
|
||||
bool m_produce_placement_blockages;
|
||||
std::string m_placement_blockage_layer;
|
||||
bool m_produce_regions;
|
||||
std::string m_region_layer;
|
||||
bool m_produce_via_geometry;
|
||||
std::string m_via_geometry_suffix;
|
||||
int m_via_geometry_datatype;
|
||||
|
|
@ -419,7 +463,8 @@ enum LayerPurpose
|
|||
Obstructions = 4,
|
||||
Outline = 5,
|
||||
Blockage = 6,
|
||||
PlacementBlockage = 7
|
||||
PlacementBlockage = 7,
|
||||
Region = 8
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -618,6 +663,22 @@ protected:
|
|||
return m_net_prop_name_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets a flag indicating whether instance names shall be produced as properties
|
||||
*/
|
||||
bool produce_inst_props () const
|
||||
{
|
||||
return m_produce_inst_props;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets the property name id of the instance name property
|
||||
*/
|
||||
db::property_names_id_type inst_prop_name_id () const
|
||||
{
|
||||
return m_inst_prop_name_id;
|
||||
}
|
||||
|
||||
protected:
|
||||
void create_generated_via (std::vector<db::Polygon> &bottom,
|
||||
std::vector<db::Polygon> &cut,
|
||||
|
|
@ -637,8 +698,10 @@ private:
|
|||
std::string m_cellname;
|
||||
std::string m_fn;
|
||||
std::string m_last_token;
|
||||
db::property_names_id_type m_produce_net_props;
|
||||
bool m_produce_net_props;
|
||||
db::property_names_id_type m_net_prop_name_id;
|
||||
bool m_produce_inst_props;
|
||||
db::property_names_id_type m_inst_prop_name_id;
|
||||
|
||||
const std::string &next ();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -267,10 +267,14 @@ public:
|
|||
tl::make_member (&LEFDEFReaderOptions::dbu, &LEFDEFReaderOptions::set_dbu, "dbu") +
|
||||
tl::make_member (&LEFDEFReaderOptions::produce_net_names, &LEFDEFReaderOptions::set_produce_net_names, "produce-net-names") +
|
||||
tl::make_member (&LEFDEFReaderOptions::net_property_name, &LEFDEFReaderOptions::set_net_property_name, "net-property-name") +
|
||||
tl::make_member (&LEFDEFReaderOptions::produce_inst_names, &LEFDEFReaderOptions::set_produce_inst_names, "produce-inst-names") +
|
||||
tl::make_member (&LEFDEFReaderOptions::inst_property_name, &LEFDEFReaderOptions::set_inst_property_name, "inst-property-name") +
|
||||
tl::make_member (&LEFDEFReaderOptions::produce_cell_outlines, &LEFDEFReaderOptions::set_produce_cell_outlines, "produce-cell-outlines") +
|
||||
tl::make_member (&LEFDEFReaderOptions::cell_outline_layer, &LEFDEFReaderOptions::set_cell_outline_layer, "cell-outline-layer") +
|
||||
tl::make_member (&LEFDEFReaderOptions::produce_placement_blockages, &LEFDEFReaderOptions::set_produce_placement_blockages, "produce-placement-blockages") +
|
||||
tl::make_member (&LEFDEFReaderOptions::placement_blockage_layer, &LEFDEFReaderOptions::set_placement_blockage_layer, "placement-blockage-layer") +
|
||||
tl::make_member (&LEFDEFReaderOptions::produce_regions, &LEFDEFReaderOptions::set_produce_regions, "produce-regions") +
|
||||
tl::make_member (&LEFDEFReaderOptions::region_layer, &LEFDEFReaderOptions::set_region_layer, "region-layer") +
|
||||
tl::make_member (&LEFDEFReaderOptions::produce_via_geometry, &LEFDEFReaderOptions::set_produce_via_geometry, "produce-via-geometry") +
|
||||
tl::make_member (&LEFDEFReaderOptions::via_geometry_suffix, &LEFDEFReaderOptions::set_via_geometry_suffix, "via-geometry-suffix") +
|
||||
tl::make_member (&LEFDEFReaderOptions::via_geometry_datatype, &LEFDEFReaderOptions::set_via_geometry_datatype, "via-geometry-datatype") +
|
||||
|
|
|
|||
|
|
@ -77,4 +77,5 @@ unit_tests.depends += plugins $$MAIN_DEPENDS
|
|||
|
||||
RESOURCES += \
|
||||
laybasic/layResources.qrc \
|
||||
ant/layResources.qrc
|
||||
ant/layResources.qrc \
|
||||
ext/lay/layResources.qrc
|
||||
|
|
|
|||
Loading…
Reference in New Issue