Issue 1143 (#1149)

* [CONSIDER MERGING] Clarification and typo fixed in DRC doc.

* Fixed issue #1143 (technology default DBU not taken)
This commit is contained in:
Matthias Köfferlein 2022-09-05 20:30:57 +02:00 committed by GitHub
parent 7a9e9989d3
commit f6c5062c71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 49 additions and 20 deletions

View File

@ -1594,6 +1594,14 @@ CODE
# @brief Specifies cell filters on the default source
# @synopsis select(args)
# See \Source#select for a description of that function.
# Using the global version does not create a new source, but
# modifies the default source.
#
# @code
# # Selects only B cell instances below the top cell
# select("-", "+B*")
# l1 = input(1, 0)
# @/code
def select(*args)
self._context("select") do

View File

@ -161,9 +161,11 @@ module DRC
# %DRC%
# @name select
# @brief Adds cell name expressions to the cell filters
# @synopsis source.select(filter1, filter2, ...)
# @synopsis new_source = source.select(filter1, filter2, ...)
# This method will construct a new source object with the given cell filters
# applied.
# applied. Note that there is a global version of "select" which does not
# create a new source, but acts on the default source.
#
# Cell filters will enable or disable cells plus their subtree.
# Cells can be switched on and off, which makes the hierarchy traversal
# stop or begin delivering shapes at the given cell. The arguments of
@ -184,8 +186,8 @@ module DRC
# code:
#
# @code
# layout_with_selection = source.select("-TOP", "+B")
# l1 = source.input(1, 0)
# source_with_selection = source.select("-TOP", "+B")
# l1 = source_with_selection.input(1, 0)
# ...
# @/code
#
@ -201,8 +203,8 @@ module DRC
# first "-*" selection, all cells including the children of "B" are disabled:
#
# @code
# layout_with_selection = source.select("-*", "+B")
# l1 = source.input(1, 0)
# source_with_selection = source.select("-*", "+B")
# l1 = source_with_selection.input(1, 0)
# ...
# @/code
#
@ -210,8 +212,8 @@ module DRC
# and will start with a disabled top cell regardless of its name:
#
# @code
# layout_with_selection = source.select("-", "+B")
# l1 = source.input(1, 0)
# source_with_selection = source.select("-", "+B")
# l1 = source_with_selection.input(1, 0)
# ...
# @/code

View File

@ -1597,6 +1597,14 @@ out = l1.drc(primary & secondary(l2))
</ul>
<p>
See <a href="/about/drc_ref_source.xml#select">Source#select</a> for a description of that function.
Using the global version does not create a new source, but
modifies the default source.
</p><p>
<pre>
# Selects only B cell instances below the top cell
select("-", "+B*")
l1 = input(1, 0)
</pre>
</p>
<a name="sep"/><h2>"sep" - Synonym for "separation"</h2>
<keyword name="sep"/>

View File

@ -320,11 +320,13 @@ Use the global version of "polygons" without a source object to address the defa
<keyword name="select"/>
<p>Usage:</p>
<ul>
<li><tt>source.select(filter1, filter2, ...)</tt></li>
<li><tt>new_source = source.select(filter1, filter2, ...)</tt></li>
</ul>
<p>
This method will construct a new source object with the given cell filters
applied.
applied. Note that there is a global version of "select" which does not
create a new source, but acts on the default source.
</p><p>
Cell filters will enable or disable cells plus their subtree.
Cells can be switched on and off, which makes the hierarchy traversal
stop or begin delivering shapes at the given cell. The arguments of
@ -345,8 +347,8 @@ To disable the TOP cell but enabled a hypothetical cell B below the top cell, us
code:
</p><p>
<pre>
layout_with_selection = source.select("-TOP", "+B")
l1 = source.input(1, 0)
source_with_selection = source.select("-TOP", "+B")
l1 = source_with_selection.input(1, 0)
...
</pre>
</p><p>
@ -362,8 +364,8 @@ The following code will just select "B" without its children, because in the
first "-*" selection, all cells including the children of "B" are disabled:
</p><p>
<pre>
layout_with_selection = source.select("-*", "+B")
l1 = source.input(1, 0)
source_with_selection = source.select("-*", "+B")
l1 = source_with_selection.input(1, 0)
...
</pre>
</p><p>
@ -371,8 +373,8 @@ The short form "-" will disable the top cell. This code is identical to the firs
and will start with a disabled top cell regardless of its name:
</p><p>
<pre>
layout_with_selection = source.select("-", "+B")
l1 = source.input(1, 0)
source_with_selection = source.select("-", "+B")
l1 = source_with_selection.input(1, 0)
...
</pre>
</p>

View File

@ -98,7 +98,7 @@ LayerSourceDialog::exec_dialog (std::string &s)
// NewLayoutPropertiesDialog implementation
NewLayoutPropertiesDialog::NewLayoutPropertiesDialog (QWidget *parent)
: QDialog (parent)
: QDialog (parent), m_default_dbu (0.0)
{
setObjectName (QString::fromUtf8 ("new_layout_properties_dialog"));
@ -117,14 +117,20 @@ NewLayoutPropertiesDialog::~NewLayoutPropertiesDialog ()
void
NewLayoutPropertiesDialog::tech_changed ()
{
double dbu = 0.001;
double dbu = 0.0;
int technology_index = mp_ui->tech_cbx->currentIndex ();
if (technology_index >= 0 && technology_index < (int) db::Technologies::instance ()->technologies ()) {
dbu = db::Technologies::instance ()->begin () [technology_index].dbu ();
}
m_default_dbu = dbu;
#if QT_VERSION >= 0x40700
mp_ui->dbu_le->setPlaceholderText (tl::to_qstring (tl::to_string (dbu)));
if (dbu > 1e-10) {
mp_ui->dbu_le->setPlaceholderText (tl::to_qstring (tl::to_string (dbu)));
} else {
mp_ui->dbu_le->setPlaceholderText (QString ());
}
#endif
}
@ -142,6 +148,8 @@ NewLayoutPropertiesDialog::exec_dialog (std::string &technology, std::string &ce
}
tech_changed ();
mp_ui->window_le->setText (tl::to_qstring (tl::to_string (size)));
if (dbu > 1e-10) {
mp_ui->dbu_le->setText (tl::to_qstring (tl::to_string (dbu)));
@ -174,7 +182,7 @@ NewLayoutPropertiesDialog::exec_dialog (std::string &technology, std::string &ce
if (! mp_ui->dbu_le->text ().isEmpty ()) {
tl::from_string_ext (tl::to_string (mp_ui->dbu_le->text ()), dbu);
} else {
dbu = 0.0;
dbu = m_default_dbu;
}
cell_name = tl::to_string (mp_ui->topcell_le->text ());

View File

@ -338,6 +338,7 @@ private:
virtual void accept ();
Ui::NewLayoutPropertiesDialog *mp_ui;
double m_default_dbu;
};
/**