From cf38d03e3cf0a2ad77433dfbe9543bf7a5521cb6 Mon Sep 17 00:00:00 2001 From: "yu.dongliang" <18588496441@163.com> Date: Sat, 21 Oct 2023 16:47:31 +0800 Subject: [PATCH] __ses_path_jr() --- ses_step_jr.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ses_step_jr.c b/ses_step_jr.c index d666818..2547a4d 100644 --- a/ses_step_jr.c +++ b/ses_step_jr.c @@ -65,7 +65,12 @@ void __ses_path_pr(ScfEfunction* f, ses_path_t* path, int i, int j, ScfEpin* cp1 } if (SCF_EDA_NPN == c0->type) { - if (i > 0) { + + if (SCF_EDA_NPN_E == p0->id) { + *r = p1->pr - p0->pr; + *jr = p1->jpr - p0->jpr; + + } else if (i > 0) { p0 = path->pins->data[i - 1]; *r = p1->pr - p0->pr; @@ -186,15 +191,19 @@ static int __ses_path_jr(ScfEfunction* f, ses_path_t* path) p1->pr -= dr; p1->jpr -= jdr; - c = f->components[p1->cid]; + c = f->components[p1->cid]; - if (SCF_EDA_NPN == c->type && SCF_EDA_NPN_E == p1->id && cp1 != p1) { + if (SCF_EDA_NPN == c->type && SCF_EDA_NPN_E == p1->id) { - p = path->pins->data[j - 1]; - p->pr -= dr; - p->jpr -= jdr; + p = path->pins->data[j - 1]; - scf_logi("j: %d, c%ldp%ld, p->pr: %lg, p->sr: %lg, pr: %lg, dr: %lg\n", j, p->cid, p->id, p->pr, p->sr, pr, dr); + if (cp1 != p1) { + p->pr -= dr; + p->jpr -= jdr; + } else { + p1->pr = p->pr - dr; + p1->jpr = p->jpr - jdr; + } } scf_logi("j: %d, c%ldp%ld, p->pr: %lg, p->sr: %lg, pr: %lg, dr: %lg\n", j, p1->cid, p1->id, p1->pr, p1->sr, pr, dr); -- 2.25.1