Skip to content

Commit

Permalink
Xic: Fix repetition in gpulse from OA.
Browse files Browse the repository at this point in the history
  • Loading branch information
wrcad committed Jun 3, 2020
1 parent 82b5050 commit 11e467c
Showing 1 changed file with 23 additions and 5 deletions.
28 changes: 23 additions & 5 deletions xic/src/oa/oa_alib.cc
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,25 @@ cAlibFixup::src_params(sLstr &lstr, const char *dname, const char **params)
lstr.add_c(' ');
lstr.add(p->stringVal());

while ((p = PCellParam::find(prms, *params++)) != 0) {
while ((p = PCellParam::find(prms, *params)) != 0) {
lstr.add_c(' ');
lstr.add(p->stringVal());

if (lstring::cieq(*params, "pattern")) {
// Hack for the gpulse bstring modifiers.
p = PCellParam::find(prms, "r");
if (p) {
lstr.add(" r=");
lstr.add_i(atof(p->stringVal()));
}
p = PCellParam::find(prms, "rb");
if (p) {
lstr.add(" rb=");
lstr.add_i(atof(p->stringVal()));
}
break;
}
params++;
}
dcac(prms, lstr);
PCellParam::destroy(prms);
Expand Down Expand Up @@ -220,12 +236,13 @@ cAlibFixup::alib_vexp(sLstr &lstr)
}

// vgpulse
// instParameters (dc acm acp v1 v2 td pw per pattern)
// instParameters (dc acm acp v1 v2 td pw per pattern r rb)
//
bool
cAlibFixup::alib_vgpulse(sLstr &lstr)
{
const char *params[] = { "v1", "v2", "td", "pw", "per", "pattern", 0 };
const char *params[] = { "v1", "v2", "td", "pw", "per", "pattern",
"r", "rb", 0 };
return (src_params(lstr, "gpulse", params));
}

Expand Down Expand Up @@ -332,12 +349,13 @@ cAlibFixup::alib_iexp(sLstr &lstr)
}

// igpulse
// instParameters (dc acm acp i1 i2 td pw per pattern)
// instParameters (dc acm acp i1 i2 td pw per patter r rbn)
//
bool
cAlibFixup::alib_igpulse(sLstr &lstr)
{
const char *params[] = { "i1", "iv2", "td", "pw", "per", "pattern", 0 };
const char *params[] = { "i1", "iv2", "td", "pw", "per", "pattern",
"r", "rb", 0 };
return (src_params(lstr, "gpulse", params));
}

Expand Down

0 comments on commit 11e467c

Please sign in to comment.