Update goldens for "dcalc no slew merge for constant disabled arcs".
dcalc_case_analysis_leak: arrival spread across the wire-load sweep on the
constant net drops from 46.38 ps to 0.00 ps, which is the point of the test.
Rewrite the header comment to describe the fix rather than the open bug.
graph_modify: with set_case_analysis 0 on d4, inv2 drives n4=1 and or1
drives n6=1, so nand1/A2 is constant. 1 is non-controlling for a NAND, so
nand1/ZN stays live and the A2->ZN arc is dead. Its slew no longer merges
into nand1/ZN, so buf4/Z falls from 0.07 to 0.06. The following report,
after unset_case_analysis, still shows 0.07 as expected.
sdc_port_delay_advanced: in1=0, in2=1 and case analysis 0 on in3 make
nor1/ZN constant, so it is no longer reported as the worst max slew pin;
reg1/QN takes its place.
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* Add read_vcd -begin_time/-end_time activity windowing.
Limit VCD transition and duty counting to an optional time window so
activity annotation can ignore regions outside the interval of interest.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Format VcdCount::setFilter parameters one per line.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Address VCD begin/end review: VcdTime, sentinel, rename.
Use VcdTime and vcd_null_time instead of int64_t/-1, rename
VcdCount filter bounds to begin/end_time, rename the regression to
vcd_begin_end_time, and document read_vcd -begin_time/-end_time in
ChangeLog.txt.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: James Cherry <34749589+jjcherry56@users.noreply.github.com>
* write_path_spice: match side input values to the path arc's transitions
gatePortValues() chose side input values from the first CUDD cube of the
Boolean difference d(f)/d(input), which sensitizes the gate but ignores
the transition directions of the arc the path used:
- For non-unate gates whose Boolean difference is a tautology (xor2,
xnor2) every side variable came back don't-care, and the unknown value
fell through to tie-low in writeSubcktInstVoltSrcs() -- wrong whenever
the path used the when-condition requiring the side high.
- For mux select arcs the cube was an arbitrary data assignment,
unrelated to the output edge the path reported.
Either way the written deck's gate drives the opposite direction from
the reported path: the simulated chain switches with inverted polarity
from that gate onward, edge-qualified arrival measurements fail, and
the deck sums delays from the wrong rise/fall tables.
Constrain the side input condition to the cofactor pair matching this
arc -- f1 & !f0 when the input and driver edges agree (non-inverting),
f0 & !f1 when they differ (inverting) -- threading the gate input
RiseFall from the path stage into gatePortValues(). Also release the
CUDD nodes that were previously leaked (the old code Cudd_Ref'd the
Boolean difference after the generator was freed and never deref'd it).
Fixes#474
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test: write_path_spice
arc-sense regression for #474, and outlined in #475
---------
Co-authored-by: Brian Degnan <bpdegnan@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* support for filter in get_scene/mode
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* extend user defined property to all 10 objects
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* address reviews
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
---------
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* support for filter in get_scene/mode
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* fix singular G matrix issue for degenerate nets
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* fix the mistake on existing regression- was accidentally modified
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* make changes accounting for future SI support and address reviews
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* simplify comment
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
* address feedbacks
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
---------
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
We used to use runfiles to work with tcl dependencies. Since we don't
need that anymore, just add a regular `BAZEL_BUILD` define to
choose the behavior in the bazel build and remove the unneeded
dependency.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
* Use more reliable mirrors for Bison and TCL in CentOS 7 Dockerfile.
ftp.gnu.org and SourceForge prdownloads are flaky in CI; switch to
dotsrc and OSUOSL mirrors.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Use GNU ftpmirror and SourceForge project URLs.
Switch CentOS 7 Dockerfile downloads to the reviewer-suggested
ftpmirror.gnu.org redirector for Bison and the SourceForge project
download URL for TCL.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>