doc updates; only hilight connected instances (when doing a net highlight) if symbol (or instance) has highlight=true attribute set.

This commit is contained in:
Stefan Frederik 2021-01-03 17:34:08 +01:00
parent b272080637
commit 89f32313c3
4 changed files with 35 additions and 11 deletions

View File

@ -35,12 +35,16 @@ p{padding: 15px 30px 10px;}
Tck/Tk versions may vary on different systems, 8.4, 8.5, 8.6 versions are all good.
</p>
<pre class="code">
tcl8.6 libx11-dev
tk8.6 libxpm-dev
tcl8.6-dev bison
tk8.6-dev flex
gawk or mawk libcairo2-dev
</pre>
libX11-6 libx11-dev
libxrender1 libxrender-dev
libxcb1 libx11-xcb-dev
libcairo2 libcairo2-dev
tcl8.6 tcl8.6-dev
tk8.6 tk8.6-dev
flex bison
libxpm4 libxpm-dev
gawk or mawk
</pre>
<p>If configure ends with no errors we are ready to compile:
</p>

View File

@ -327,6 +327,24 @@ m5 net1 b net2 VSSPIN nlv w=wn l=ln geomod=0 m=1
can be defined in case of elements with multiple outputs.
</p>
<img src="symbol_property_syntax5.png">
<p>
Commands that can appear in functions are:
</p>
<ul>
<li> <kbd>n</kbd>: A digit indicates to put on the stack the logic value (0, 1, X) of pin with sequence number <kbd>n</kbd>
The sequence number of a pin my be obtained by clicking the red square of the pin and pressing <kbd>Shift-S</kbd>.</li>
<li> <kbd>&amp;</kbd>: Does a logical AND operation of the last 2 elements on top of the stack, the result is left on the stack</li>
<li> <kbd>|</kbd>: Does a logical OR operation of the last 2 elements on top of the stack, the result is left on the stack</li>
<li> <kbd>^</kbd>: Does a logical XOR operation of the last 2 elements on top of the stack, the result is left on the stack</li>
<li> <kbd>~</kbd>: Does a logical Negation operation of the last element on top of the stack, the result is left on the stack</li>
<li> <kbd>d</kbd>: Duplicates top element on the stack</li>
<li> <kbd>x</kbd>: Exhanges the 2 top elements on the stack</li>
<li> <kbd>H</kbd>: Puts a Logic '1' on the stack</li>
<li> <kbd>L</kbd>: Puts a Logic '0' on the stack</li>
</ul>
<p>
The remaining value on the stack is the value that is returned and assigned to the output pin.
</p>
<li><kbd>global</kbd></li>
<p>
a <kbd>global=true</kbd> property in a <kbd>label</kbd> type symbol will declare the corresponding net as 'global'.

View File

@ -661,7 +661,7 @@ int search(const char *tok, const char *val, int sub, int sel)
}
/* "drill" option (pass through resistors or pass gates or whatever elements with */
/* 'goto' properties set on pins) */
/* 'propag' properties set on pins) */
void drill_hilight(int mode)
{
char *netname=NULL, *propagated_net=NULL;
@ -671,7 +671,7 @@ void drill_hilight(int mode)
xRect *rct;
int i, j, npin;
char *propagate_str = NULL;
int propagate;
int propagate, hilight_connected_inst;
struct hilight_hashentry *entry, *propag_entry;
prepare_netlist_structs(0);
@ -681,10 +681,12 @@ void drill_hilight(int mode)
symbol = xctx->inst[i].ptr+xctx->sym;
npin = symbol->rects[PINLAYER];
rct=symbol->rect[PINLAYER];
hilight_connected_inst = en_hilight_conn_inst &&
( (xctx->inst[i].flags & 4) || ((xctx->inst[i].ptr+ xctx->sym)->flags & 4) );
for(j=0; j<npin;j++) {
my_strdup(143, &netname, net_name(i, j, &mult, 1, 0));
entry=bus_hilight_lookup(netname, 0, XLOOKUP);
if(entry && (en_hilight_conn_inst || (symbol->type && IS_LABEL_SH_OR_PIN(symbol->type))) ) {
if(entry && (hilight_connected_inst || (symbol->type && IS_LABEL_SH_OR_PIN(symbol->type))) ) {
xctx->inst[i].color = entry->value;
}
my_strdup(1225, &propagate_str, get_tok_value(rct[j].prop_ptr, "propag", 0));
@ -813,7 +815,7 @@ static void send_current_to_gaw(int simtype, const char *node)
my_free(1182, &t);
}
/* hilight_instances: if set to 1 hilight non pin/label symbols with "highlight=true" attribute set */
/* hilight_instances: if set == 1 hilight non pin/label symbols with "highlight=true" attribute set */
void propagate_hilights(int set, int clear, int mode)
{
int i, hilight_connected_inst;

View File

@ -106,5 +106,5 @@ C {ngspice_probe.sym} 500 -390 0 0 {name=r1}
C {ngspice_probe.sym} 420 -160 0 0 {name=r2}
C {ngspice_probe.sym} 600 -260 0 0 {name=r3}
C {ngspice_probe.sym} 770 -420 0 0 {name=r4}
C {ngspice_get_value.sym} 620 -160 0 0 {name=r5 node=i(@m1[id])
C {ngspice_get_value.sym} 620 -160 0 0 {name=r5 node=i(@$\{path\}m1[id])
descr="I="}